首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC消息循环有关问题

2012-01-07 
MFC消息循环问题我想让MFC的消息循环,每次都能调用指定的函数,该怎么做,我还不是很了解MFC的消息传递原理,

MFC消息循环问题
我想让MFC的消息循环,每次都能调用指定的函数,该怎么做,
我还不是很了解MFC的消息传递原理,如果可以的话顺便帮我介绍下。

谢谢

[解决办法]
看不懂要求。
[解决办法]
跟踪一下就知道。 在mfc里面消息首先传递到窗口,在传递到view等等,最后才是里面的控件,如果你要每次调用自己自定的函数,修改一下LIB里面的源代码就可以了!
[解决办法]
消息机制是这样的:在你的WINDMAIN.cpp文件中的会有窗口的创建和初始化,和一个函数GetMessage()函数,这个函数是自动在监听消息的,WINDMAIN.cpp文件中有
MSG msg;
while(GetMessage(msg,null,0,0,)){
.TranslateMessage(hwnd,meg,wparam,lparam);//将消息转换为进程
.DitachMessage(hwnd,meg,wparam,lparam);//将消息发送到WndPro()中,去执行消息处理行为
}
when Message queue have a new Message,GetMessage funcation could find it,besides,
GetMessage()==1,produrce into while.


[解决办法]
消息是外界触发的,在WINDMAIN.cpp我认为不能有什么改变,所以你可以在WndPro(hwnd,msg,wprarm,lprarm)中,设置
while(1){
switch(msg){
case 1://
case 2://
case 3://设置为对应的操作,可以将操作设置在一个数组中,while(){ 数组 }
}
}
[解决办法]
while(GetMessage(msg,null,0,0,))
{
TranslateMessage(hwnd,meg,wparam,lparam);
DitachMessage(hwnd,meg,wparam,lparam);
}

这就是消息循环呀
[解决办法]
如过还没有解决。
你可以使用getwinsowlong和setwindowlong来完成,
先调用你的消息函数,在效用默认的消息函数!!这样就可以在每次进入消息处理的时间都能被调用!
[解决办法]
重载PreTranslateMessage和WndProc函数,找到指定消息,调用指定函数.一个是针对SendMessage发的消息,一个是针对PostMessage发的消息,究竟是哪个,你自己调试一下
[解决办法]
呵呵,看看《《MFC深入浅出》》 就清楚了!

热点排行