|
I'd recommend using ATL to create your control. Beginning ATL 3 COM Programming by Richard Grimes is a good book to get started with. I also found Programming Microsoft Visual C++ by Kruglinski to be useful.
There are some good ATL/COM articles on CodeProject and there are some very cool button controls too.
Michael
|
|
|
|
|
Add a CButton in an active X control...
how can I do that
Remi Morin
Rmorin@Operamail.com
Remi.Morin@Lyrtech.com
|
|
|
|
|
When invalidating the client area the background refreshes OK but the main toolbar does not.
Any ideas?
|
|
|
|
|
something like:
((you'rMainFrame*)((You'rApp*)afxGetApp())->GetMainWnd())->m_ToolBar.Invalidate();
I'm not sure, it's an Ideas
Remi Morin
Rmorin@Operamail.com
Remi.Morin@Lyrtech.com
|
|
|
|
|
I have collected all the items on the dialog by executing
"GetNextDlgTabItem()", this function returns the pointer of CWnd. now i want to know whether this pointer points to a "CButton"Object or "CEditBox" Object.
I mean i want to know the type of control.
or any other solution in your mind..
.......
I want to get the collections of items on a dialog Box and then manipulate these items according to their type.
|
|
|
|
|
Use IsKindOf()
like this
CWnd* pWnd = GetNextDlgTabItem();
if(pWnd && pWnd->IsKindOf(RUNTIME_CLASS(CEdit)))
//edit box
else if(pWnd && pWnd->IsKindOf(RUNTIME_CLASS(CButton)))
//button
else
//whatever
|
|
|
|
|
void CButtonReplacerDlg::DialogManipulator()
{
CWnd* pWnd=GetActiveWindow();
CWnd* tempWnd,*backupWnd;
backupWnd=GetNextDlgTabItem(pWnd);
tempWnd=backupWnd;
while ((pWnd=GetNextDlgTabItem(tempWnd))!=backupWnd)
{
tempWnd=pWnd;
CString str;
pWnd->GetWindowText(str);
AfxMessageBox(str);
if (pWnd->IsKindOf(RUNTIME_CLASS(CButton)))
{
AfxMessageBox("Button");
}
else if ( pWnd->IsKindOf(RUNTIME_CLASS(CEdit)))
{
AfxMessageBox("EditBox");
}
else if ( pWnd->IsKindOf(RUNTIME_CLASS(CStatic)))
{
AfxMessageBox("Static");
}
}
}
Chief ....I have tried IsKindOf() but it not works well...It only works for the first CWnd pointer, but not works for the rest...... U create a few buttons and Edit Box and static box on a dialog and check the above function. U come with the problem i face....Thanks for earlier help.
|
|
|
|
|
Hi,
I think IsKindOf() only works if you have subclassed the control with an MFC object (for example using ClasWizard to add a variable).
The right way is checking the window's class - see GetClassName(). You may check the class name of your controls with Spy++.
Paolo
------
"airplane is cool, but space shuttle is even better" (J. Kaczorowski)
|
|
|
|
|
You need to use ::GetClassName. This will tell you the window class that was registered with windows. "EDIT", "BUTTON", "COMBOBOX", "LISTBOX" are common ones, use Spy+ to find out others.
|
|
|
|
|
Someone clicks file and save and alot of individual text files are saved. How can I bundle those text files into one (1) single file that has the extension .abc or .dae or whatever, just some extension other than a .zip? I just want to bundle the files together some how and then when they click retrieve unbundle that file into it's little individual text files.
Any ideas? Any response any one can give me will be greatly appreciated.
Sincerely,
Danielle (an overworked graduate student)
|
|
|
|
|
If you can separate the individual text files with some unique character sequence (like 15 newlines in a row, or some other sequence), you can just write the texts to the file one at a time, writing an end-sequence after each text. When loading you read one char at a time until you hit the end-sequence. Then you start a new text and read on into this new one.
Another possibility is to make a header to write to the file first. It contains the number of texts in the file, their sizes and their starting offset into the file. Reading the file should be trivial.
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
Could I use the lParam value of the TVITEM struct to store a pointer to a Cobject? If so, how would I do this? Thanks,
WAVK
|
|
|
|
|
treeitem.lParam = (LPARAM)*MyObj;
|
|
|
|
|
|
How to read/write CString to CFile line by line?by using Edit box.The data will be displayed in the List box of the file.
Delete the string from the list box that will be deleted in the file as well.
|
|
|
|
|
Use CStdioFile wich is Public CFile...
this one has a Methods:
Readstring -> Reads a single line of text.
WriteString -> Writes a single line of text.
greetz
HackMan
|
|
|
|
|
Hello;
I want share a pointer variable between two process. How can i pass a pointer variable from process to another process? And how can i handle shared pointer at destination process ?
Thank you...
|
|
|
|
|
What is it you are trying to accomplish? Can you just send the data and not the pointer? You can use shared memory, mem file, or clipboard.
|
|
|
|
|
I want to export variable to another process.
|
|
|
|
|
Shared Memory is the good solution. Once We have done the
same job in Linux Operating Sysytem.
|
|
|
|
|
|
Look up WM_COPYDATA in the MSDN. It's the simplest solution.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
Sharing a pointer between processes will not work. Process have their own memory space, and addresses in one are meaningless in another. Instead, use WM_COPYDATA as Christian suggested to transfer the variable, or else use shared memory. Look up CreateFileMapping() as a starting point on creating a shared memory block.
--Mike--
http://home.inreach.com/mdunn/
Ford: How would you react if I said that I'm not from Guildford after all, but from a small planet somewhere in the vicinity of Betelguese?
Arthur: I don't know. Why, do you think it's the sort of thing you're likely to say?
|
|
|
|
|
hi,
I want to change the menu position at run time (Left side or right side of Dialog)in VC++. As my application is multi-language, if User selects English then Menu should be at right side and if he selects Arabic then menu should be at right side of Dialog.
I know i can set menu properties "Right to Left Order Alignment" or "MF_RIGHTJUSTIFY " at design time. But i want to set them at run time.
Is there any Window API, CMenu Function, or CWnd Function that sets this property at run time.
I am not creating menu at run time, rather menu is alraedy created. I only want to change its position at run time.
Have a nice Wishes For My Helper
|
|
|
|
|
I am developing a project in VC++ regarding mathematics using VC++/MFC. I want to plot "graphs" of various algebraic and trignometric expressions. If you know any article or if you have source code for "exprssion plotting" then please let me know through this forum or e-mail me. I shall be very thankful to you. There are few articles on codeproject that deals with statistical data plotting but not a single that plots the "expressions".
Imran Farooqui
email: imran@imilabs.private.as
|
|
|
|