PropertySheet wizard模式
在PropertyPage上放了一个RichEdit控件(进行了AfxInitRichEdit()),当我选择了RichEdit的ES_MULTILIINE时,发现一个奇怪的现象;
当我用鼠标把点击进入RichEdit时,发现整个属性页无法通过ESC退出了,把这个属性去掉之后就可以,真奇怪!大家知道为什么会这样么,有什么好的解决方法?我现在初步的解决方式是通过在PropertySheet截获ESC消息,然后PostMessage(WM_CLOSE)退出属性页。

解决方案 »

  1.   

    RichEdit有焦点,我估计他截获了ESC,你收不到了。
      

  2.   

    可以在PropertySheet的PreTranslateMessage函数中加入如下代码:
    if (pMsg->message == WM_KEYDOWN)
    {
    if (pMsg->wParam == VK_ESCAPE)
    {
    PressButton(PSBTN_CANCEL);
    return TRUE;
    }
    } return CPropertySheet::PreTranslateMessage(pMsg);
      

  3.   

    感谢大家支持!2楼答案比我原先的方案正规,但是没有给出原因,欢迎大家给出原因,可以另外开贴给分。是VC的BUG吧?