在侯老师的书中第317页说当程序运行到:
#0067 pMainFrame->LoadFrame(IDR_MAINFRAME);时
MFC内部 CFrameWnd::Create
|
CWnd::CreateEx
|
::CreateWindowEx
|
发送WM_CREATE消息
|
CMainFrame::OnCreate
我的问题是:当::CreateWindowEx函数发送WM_CREATE消息后,这时程序并没有进入消息循环,那么OnCreate函数是怎样被调用的?我在用VC++6.0进行跟踪时发现,确实是OnCreate函数被调用以后再进入消息循环的。后来发现MSDN上说,OnCreate函数是被Framework调用?什么叫被Framework调用,被Framework调用与消息循环分发消息有什么不用?
#0067 pMainFrame->LoadFrame(IDR_MAINFRAME);时
MFC内部 CFrameWnd::Create
|
CWnd::CreateEx
|
::CreateWindowEx
|
发送WM_CREATE消息
|
CMainFrame::OnCreate
我的问题是:当::CreateWindowEx函数发送WM_CREATE消息后,这时程序并没有进入消息循环,那么OnCreate函数是怎样被调用的?我在用VC++6.0进行跟踪时发现,确实是OnCreate函数被调用以后再进入消息循环的。后来发现MSDN上说,OnCreate函数是被Framework调用?什么叫被Framework调用,被Framework调用与消息循环分发消息有什么不用?
问题豁然开朗..
请问什么是程序内部发送?我如何跟踪这个步骤?请你给出详细说明好吗?这个地方卡住我好几天了。
资料:
//---------------------------
消息分为:
进队和不进队消息
进队的消息被发送给消息队列,不今对的消息则发送给窗口过程。进队消息基本上是用户输入的结果,如WM_KEYDOWN、WM_CHAR、WM_TIMER、WM_PAINT、WM_QUIT等。
不进队的消息来自调用特定的Windows函数,如WM_GREATE、WM_SIZE、WM_COMMAND等斑竹大人 太无敌了...
要问原因
请问盖次...
-.-
不管进不进队都是消息,那不进队的消息就不用Tanslate和Dispatch了?那你所说的特定函数也就是指楼主说的Framework调用了,我想就是系统调用吧?要不然写win32的时候从来没有理会过这些消息,还是一样运行的挺好。