查看单个帖子
旧 2007-11-12, 03:10 PM   #1
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 【转帖】谁能详细地讲解PreTranslateMessage以及MSG的用途及用法

哪位老哥,能详细地讲解PreTranslateMessage以及MSG的用途及用法!
小弟菜鸟一只,请指教!!:)

1 楼joke100(咱们去SLEEP吧...)回复于 2001-03-26 10:50:00 得分 10

PreTranslateMessage在TranslateMessage和DispatchMessage之前对消息的一次处理.一般想截获消息从这里就可以截住.如果这里不做处理,那么消息就会在TranslateMessage后分发给目标窗口去处理...

MSG是一个结构,表明了消息的具体信息.
typedef struct tagMSG { // msg
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
其中
WPARAM wParam;
LPARAM lParam;
两个成员对于不同的消息码有不同的含义...这有赖于消息的种类.
2 楼happylaodu(青菜豆腐)回复于 2001-03-26 11:34:00 得分 10

作两点补充:
如果你截获某个消息后,对它进行一定处理后,还要让它继续传下去,则可以
return CBaseClass::PreTranslateMessage(……); //调用基类的该函数,
否则你可以直接return TRUE; 或 return FALSE;
TRUE和FALSE有什么区别呢?如果用true,则消息会被传到父窗口(如果存在),用false则不会。
Top

3 楼Hopping(♂风中尘埃♂)回复于 2001-03-26 13:42:00 得分 0

能不能举个例子呢!如对话框上有一个ComboBox控件,我想在ComboBox中按下回车键后,自己进行处理,应如何做呢
huangyhg离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)