高手们,请讲解下MFC中各种常用消息的调用顺序

高手们,请教几个问题:1.请讲解下MFC中各种常用消息(如WM_CHAR、WM_PAINT、WM_DARW、WM_COMMAND、WM_CREATE、WM_SIZE等等)... 高手们,请教几个问题:
1.请讲解下MFC中各种常用消息(如WM_CHAR、WM_PAINT、WM_DARW、WM_COMMAND、WM_CREATE、WM_SIZE等等)的调用顺序,最好举例说明,越详细越好
2.有时候不知道下一步该怎么做,比如画图函数,一般定义两支画笔,最后要把系统原始的画笔给还原回去,但当时我就不知道这个。这种类似的情况还很多,请问以后若是遇到这种问题时该怎么办?
谢谢各位了
展开
 我来答
sl65agm
2010-12-30 · TA获得超过1383个赞
知道小有建树答主
回答量:734
采纳率:0%
帮助的人:590万
展开全部
1 有的消息本来就无序,WM_CHAR 和WM_KEYDOWN, WM_NCCREATE和WM_CREATE一类消息间,在一定的时间内有序,详见MSDN文档或相关书籍例如:
Programing Windows by Charles Petzold
Programing with Microsoft Visual C++.Net Core Reference By George Shapherd...
"Shapherd" 呵呵,,哥哥不由想起使命召唤6里面那个大坏蛋
2 你就当你不知道,然后看程序会怎么表现:假如你没有把默认的笔选回去,那么你画完圆后再画直线,直线的颜色可能(依赖于绘制下个物体时使用的设备上下文的状态,当前的上下文可能已经被自动重建了)会和圆一样,如果这不影响你的绘制逻辑,你就难得管。
不过你感觉不爽,你肯定会查到SelectObject这个函数来置换当前的画笔,当你顺着MSDN往下读的时候,你会发现下面一段话:
This function returns the previously selected object of the specified type. An application should always replace a new object with the original, default object after it has finished drawing with the new object.
An application cannot select a bitmap into more than one DC at a time.
ICM: If the object being selected is a brush or a pen, color management is performed.
这段话将告诉你一切。。。。。。。
3 嘎嘎,,你现在是不是感觉到中学的英语老师是那么的可爱,,,,,,,
百度网友a974616
2011-01-10 · TA获得超过2716个赞
知道小有建树答主
回答量:1719
采纳率:0%
帮助的人:1093万
展开全部
好像LZ是要问是什么函数调用了MessageBox(...)吧?
-------------------------------------------
BOOL CNopanleDoc::CanCloseFrame(CFrameWnd* pFrame)
{
// TODO: Add your specialized code here and/or call the base class
if(this->IsModified())//判断文件是否被修改过
{
AfxMessageBox("将这一语句替换成你所要的操作");
this->SetModifiedFlag(false);//不弹出询问
}
return CDocument::CanCloseFrame(pFrame);
}
-------------------------------------------
在工工程名Doc.cpp处右击鼠标,选择建立类向导,添加CanCloseFrame,将里面的内容替换成上面的内容就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eweqtem
2011-01-03 · TA获得超过4873个赞
知道小有建树答主
回答量:886
采纳率:66%
帮助的人:277万
展开全部
好像LZ是要问是什么函数调用了MessageBox(...)吧?
-------------------------------------------
BOOL CNopanleDoc::CanCloseFrame(CFrameWnd* pFrame)
{
// TODO: Add your specialized code here and/or call the base class
if(this->IsModified())//判断文件是否被修改过
{
AfxMessageBox("将这一语句替换成你所要的操作");
this->SetModifiedFlag(false);//不弹出询问
}
return CDocument::CanCloseFrame(pFrame);
}
-------------------------------------------
在工工程名Doc.cpp处右击鼠标,选择建立类向导,添加CanCloseFrame,将里面的内容替换成上面的内容就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wind556
2010-12-30 · TA获得超过250个赞
知道小有建树答主
回答量:673
采纳率:50%
帮助的人:281万
展开全部
建个项目 对你要知道的消息函数重载 在函数中加入断点或者加入一个AfxMessage("我是XX消息"); 单步执行 你马上就知道顺序是啥了···
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式