弹出属性表以后,
按下回车键就会导致属性表关闭,
如果才能阴止这个行为呢?

解决方案 »

  1.   

    重载 virtual BOOL PreTranslateMessage(MSG* pMsg);//屏蔽ESC、ENTER等键盘消息
    BOOL CxxxSheet::PreTranslateMessage(MSG* pMsg) 
    {
    if(pMsg->message==WM_KEYDOWN && (pMsg->wParam==VK_RETURN || pMsg->wParam==VK_ESCAPE) ){
    return TRUE;
    } return CPropertySheet::PreTranslateMessage(pMsg);
    }
      

  2.   

    To: seu07201213因为项目的需要,我用的是 SDK 而不是 MFC。照你的说法我应该处理属性表的 WM_KEYDOWN or WM_KEYUP 消息?可我在 MSDN 里翻来找去,发现属性表只能指定一个回调函数来处理 PSCB_INITIALIZED、PSCB_PRECREATE 消息,而属性表窗口过程的接口似乎没有对程序员开放。难不成我还要子类化属性表?
      

  3.   

    SDK的话,处理DefWindowProc:case WM_CHAR:
    if(wParam==VK_RETURN || wParam==VK_ESCAPE)
    {
    ::MessageBox(NULL,"截获","ok",MB_OK); //截获
    return TRUE;
    }
    break;
      

  4.   

    你的意思我不太明白,
    DefWindowProc() 是个 API,它的代码已经实现,我要怎么处理它?
    我不可能在它里面的 switch() 逻辑中处理 WM_CHAR 消息,
    请指点!
      

  5.   

    DefWindowProc 在MFC中就是子类化后的窗口过程,所以能得到回车和ESC键的消息。