vs2010,重载windowProc,编写控件消息响应函数

本文介绍如何在Visual Studio 2010中通过重载WindowProc来编写控件的消息响应函数,详细解释了如何处理WM_COMMAND消息,并提供了具体的代码示例。

vs2010,重载windowProc,编写控件消息响应函数

  (2012-11-06 21:27:21)
标签: 

杂谈

分类: MFC

来源:
http://blog.sina.com.cn/s/blog_6c8fad9f01014bt1.html

WM_COMMAND message:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647591(v=vs.85).aspx

winProc(message, wParam, lParam)
选择是WM_COMMAN的message;
根据wParam的高16位确定控件定义的通知码,比如对于COMBOBOX控件中的CBN_SELCHANGE消息码,意义是当combo当前选中的行的内容发生改变;
根据wParam的低16位确定控件的标识码;
对消息进行响应。
例子:
LRESULT CTestSolutionDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
       // TODO: Add your specialized code here and/or call the base class
       switch(message){
       case WM_COMMAND:
                     if (LOWORD(wParam) >= IDC_CHECK_SELECT0 &&
                            LOWORD(wParam) <= IDC_CHECK_SELECT9) {
                                   enableWindowInLine(LOWORD(wParam) - IDC_CHECK_SELECT0,
                                          IsDlgButtonChecked(LOWORD(wParam)));
                     }
                     else if(HIWORD(wParam) == CBN_SELCHANGE &&
                                   LOWORD(wParam) >= IDC_COMBO_NAME0 &&
                                   LOWORD(wParam) <= IDC_COMBO_NAME9) {
                                          showMiContent(LOWORD(wParam) - IDC_COMBO_NAME0);
                     }
                     else if (LOWORD(wParam) >= IDC_EDIT_POS0 &&
                                     LOWORD(wParam) <= IDC_EDIT_POS9) {
                                          resetRange(LOWORD(wParam) - IDC_EDIT_POS0);
                     }
                     else if (LOWORD(wParam) >= IDC_EDIT_BITS0 &&
                                   LOWORD(wParam) <= IDC_EDIT_BITS9) {
                                            resetRange(LOWORD(wParam) - IDC_EDIT_BITS0);
                     }
                     break;
       }
       return CDialog::WindowProc(message, wParam, lParam);

}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值