在http://www.xiaozhou.net/ReadNews.asp?NewsID=523 这个例子中
也就是我前天提问的例子:
http://topic.csdn.net/u/20090415/16/79a66b67-37a7-457d-8e66-697931b8c007.html有一个问题,就是当按下Enter回车的时候,对话框就消失,只剩下背景色。哪位高手指教一下? 谢谢。

解决方案 »

  1.   

    重载对话框的PreTranslateMessage函数BOOL CmainDlg::PreTranslateMessage(MSG* pMsg)
    {
    // TODO: Add your specialized code here and/or call the base class
    //Filter VK_ESCAPE and VK_RETURN operations,Prevent to close window
    if (pMsg->message == WM_KEYDOWN)

    if(pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN)   //Disabled ESC and Carriage return message
    return TRUE; 
    } return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    谢谢,但这种办法会影响到正常回车的使用(例如我一个TAB里面有一个默认按钮,但其他TAB没有),
    除了没有默认按钮的对话框重载这个函数之外,有没有其他更彻底的办法? 
      

  3.   

    将对话框中的OK键的里面的,styles--defaut button选项去掉就可以了!
      

  4.   

    不是啊,我的对话框没有任何键,只有一个STATIC的时候,按下回车也会消失,我怀疑是不是MESSAGER代码里面的问题.
      

  5.   

    默认是OK键,即使你删除了,也是一样的!
    你可以在刚开始的时候,在OK键上面选中,然后改掉defaut button选项
      

  6.   

    另外还有一个问题,如果我想改第一个TAB页对应的对话框为另外一个对话框,怎么修改之后老是显示有问题的?(没有了TAB页,而且点击的时候也有问题)
     if(bLogin&&m_wndImageTab.GetSafeHwnd())
    {
         m_wndImageTab.SetTabWnd(0, g_pDlgListShow);  //换的新的对话框
     m_wndImageTab.ShowCurrentTab();
    }
    ShowCurrentTab代码如下:
    void CImageTabWnd::ShowCurrentTab()
    {
      ShowDialog();
      Invalidate();
    }