|
Hi,
For your first question,
Suppose at run time you want to change(enable/disable,show/hide) the menuitems, then this function is usefull.
Second,
It works quite similar to other functions. You just have to add this function and write ur logic.
|
|
|
|
|
One way to do this is to loop through all items once the popup menu is drop down and call
CCmdUI::DoUpdate for all the child sub-menu. You will have to catch WM_MENUSELECT and loop through the sub-menu. Good luck!
Last Article:
Client/Server Socket class
|
|
|
|
|
Thank you VERY much
This actually solves it quite elegant
I like that
Sprudling
|
|
|
|
|
I have colors of a picture in array but i have to save all these colors i.e. picture into a .bmp file , I have already created .bmp file now how can I save my desired array's data into .bmp file at my desired x, y, places.
I'll me so thankfull to you.
|
|
|
|
|
I have a console app that uses MFC. I am doing some testing on a class that I have that utilizes CStdioFile. I know that the CStdioFile constructor will throw an exception if something goes wrong (e.g., it can't create the file.)
I try to catch this exception in the standard manner, and that part seems to work. But when I call its GetErrorMessage function, it triggers an ASSERT deep in MFC code. It appears that it is trying to load a string from a resource, but can't seem to get at the resource.
Below is the relevant fragment of code. I looked at an MSDN article TEAR (I think) and it did the exact same thing - try to call MFC functions from a console app, and I can't see why my code would be any different. (NOTE: I have also tried catching a CFileException instead of a CException , but that caused the same problem.)
try
{
CStdioFile file(realFileName, CFile::modeCreate | CFile::modeWrite);
...
}
catch(CException *e)
{
TCHAR buff[201];
bRet = false;
e->GetErrorMessage(buff, 200);
TRACE("Writing to file %s failed:\n\t%s", fileName, buff);
e->Delete();
}
Also, in my main function, this is how I initialize MFC (appwizard generated code):
if(!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
cerr << _T("Fatal Error: MFC initialization failed") << endl;
return 1;
}
Even if you win the rat race, you're still a rat.
|
|
|
|
|
You'll have to do a little hacking to get MFC to work in a console app. In this case, chances are the lacking of a CWinApp object in your code is driving MFC nuts in its effort to locate the appropriate resources. Try declaring a CWinApp object to see it that works.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Nope - already got a CWinApp object.
I could just ignore this, since this app is really just a test harness, and our "real" apps are full MFC (either doc-view or dialog based), not console apps. But I want it to work right!
Even if you win the rat race, you're still a rat.
|
|
|
|
|
Have you called CWinApp::InitInstance ? Which is the particular ASSERT that is failing?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Explicitly calling InitInstance didn't help.
The assert that fails, fails from CException::GetErrorMessage. Somewehre, some function calls AfxFormatStrings, which asserts after a call to AfxLoadString fails.
I guess I'll have to pour through a dialog-based or doc-view app, check out all the things that it does, and do some "emperical programming" until I find the combo that works...
Even if you win the rat race, you're still a rat.
|
|
|
|
|
Figured it out. I needed to have
#include "afxres.rc"
in my resource includes. Even though this gets put there automatically by AppWizard in an MFC app, it does NOT get put there automatically when you have a console app, even if you check "An app that supports MFC".
Guess that's what I get for relying too heavily on generated code.
Even if you win the rat race, you're still a rat.
|
|
|
|
|
Hi,
I want to know what is the useful space that I have in a document ( the X-Axis of the page)...
My idea is before insert one ActiveX scale it to the optimal size in the Ms Word instance.
Thanks in advance, greetings
Braulio
|
|
|
|
|
I pass a SAFEARRAY through a Variant from an ATL-made COM to some VB testing program.
Now i have the Variant and i don't know how to extract the SAFEARRAY from it.
rechi
|
|
|
|
|
This is the second time you cross-posted! You said it wasn't a common thing for you to do. Confess, you're Satan aren't you?
Jeremy L. Falcon<nobr>
Homepage : Sonork = 100.16311
"But everybody darlin' sometimes bites the hand that feeds."
"Remember in this game we call life that no one said it's fair."
"Just because you're winnin' don't mean you're the lucky ones."
Song: Breakdown - Album: Use Your Illusion II - Artist: Guns N' Roses
|
|
|
|
|
I don't hate satan, if this is what you wanna' hear.
The cross-posting is the result of the weak probability of getting some answer on the other forums.
Why are you so angry about cross-posting?
rechi
|
|
|
|
|
Bogdan Rechi wrote:
I don't hate satan, if this is what you wanna' hear.
I don't believe in him. It was a joke.
Bogdan Rechi wrote:
Why are you so angry about cross-posting?
I'm not angry at all. I just think you're Satan.
BTW, it is not proper netiquette to cross-post. The reason why is that we don't owe you anything. We choose to help. Don't pester us with a request over and over again just because it's not answered a couple minutes after you ask it. You'll find this holds true everywhere on the Internet and not just CP.
Jeremy L. Falcon<nobr>
Homepage : Sonork = 100.16311
"But everybody darlin' sometimes bites the hand that feeds."
"Remember in this game we call life that no one said it's fair."
"Just because you're winnin' don't mean you're the lucky ones."
Song: Breakdown - Album: Use Your Illusion II - Artist: Guns N' Roses
|
|
|
|
|
I'm using a mutex object to check if a dialogbox application is running. I want to know how to call ShowWindow from the InitInstance to force the dialogbox to the foreground.
Thanks
|
|
|
|
|
|
You can call SetForegroundWindow() or SetWindowPos() to do that.
Jeremy L. Falcon<nobr>
Homepage : Sonork = 100.16311
"But everybody darlin' sometimes bites the hand that feeds."
"Remember in this game we call life that no one said it's fair."
"Just because you're winnin' don't mean you're the lucky ones."
Song: Breakdown - Album: Use Your Illusion II - Artist: Guns N' Roses
|
|
|
|
|
|
Thanks for the info!
Jeremy L. Falcon<nobr>
Homepage : Sonork = 100.16311
"But everybody darlin' sometimes bites the hand that feeds."
"Remember in this game we call life that no one said it's fair."
"Just because you're winnin' don't mean you're the lucky ones."
Song: Breakdown - Album: Use Your Illusion II - Artist: Guns N' Roses
|
|
|
|
|
I assume you want to quit the current dialog and bring
the existing dialog to the foreground.
SetForegroundWindow is the right call, but its behavior
in later versions of Windows will thwart you (it just
flashes the item on the taskbar) unless you jump the
right hoops: AttachThreadInput
Here's a great article :
http://www.etree.com/tech/Articles/attachthreadinput.pdf
And here's some code to do it:
DWORD MyThreadId=GetCurrentThreadId();
DWORD ForeThreadId=::GetWindowThreadProcessId(::GetForegroundWindow(),0);
HWND hForegroundMe=0;
// Get handle to the window you want to place in the foreground.
// For instance use EnumThreadWindows if you know the ThreadId
// (perhaps you have it saved in a shared memory?)
// or use EnumWindows if you know the window text of the window
// you are looking for...
if (GetWindowLong(hForegroundMe,GWL_STYLE)&WS_MINIMIZE)
::ShowWindow(hForegroundMe,SW_RESTORE),::UpdateWindow(hForegroundMe);
if (ForeThreadId!=MyThreadId)
AttachThreadInput(ForeThreadId,MyThreadId,TRUE);
::SetForegroundWindow(hForegroundMe);
if (ForeThreadId!=MyThreadId)
AttachThreadInput(ForeThreadId,MyThreadId,FALSE);
|
|
|
|
|
Hi, i'm dealing with a form with about 250 objects, now i cannot insert any other objects. Is there a limit for objects in a form, can i solve by code?
Thank you
|
|
|
|
|
Do all the objects need to be on the same form, or just all be displayed?
You could use property pages to split up the objects, and then display multiple property pages
--
Help me! I'm turning into a grapefruit!
|
|
|
|
|
If I recall, there is an artificial limit of around 255 controls per window. It may be OS based or editor based. Just can't remember.
As Benjymous said, splitting up the controls onto sub-pages may be the best way to go.
Roger Allen
Sonork 100.10016
If I had a quote, it would be a very good one.
|
|
|
|
|
Well, i'm kind of new with Visual C++, i understand the function of DoDataExchange, i read a bit about DDP in MDSN, i understand the concept but i'm sure that i know how to use it, can you give me a example?
Most of my objects are used with an array, and for this form i don't have a ClassWizard, i've got a parse error when i try to call it, but the aplication works.
Thank you all
|
|
|
|