您的位置:首页 > 其它

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

2016-07-19 13:20 375 查看


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;

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: