BOOL CMyEdit::PreTranslateMessage(MSG* pMsg) 
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam == 13)
{
pMsg->message = WM_KILLFOCUS;
}
else if(pMsg->wParam == 27)
{
m_bEditValid = FALSE;
pMsg->message = WM_KILLFOCUS;
}
}
return CEdit::PreTranslateMessage(pMsg);
}CMyEdit是继承自CEdit的
MSDN上wParam是这样解释的,实在搞不懂,麻烦各位高帮忙解释下了
nVirtKey 
Specifies the virtual-key code of the nonsystem key. 

解决方案 »

  1.   

    void CMyListCtrl::PreSubclassWindow() 
    {
    // TODO: Add your specialized code here and/or call the base class
    ModifyStyle(LVS_EDITLABELS, 0L);
    ModifyStyle(0L, LVS_REPORT);
    ModifyStyle(0L, LVS_SHOWSELALWAYS);
    ModifyStyle(0L, LVS_SINGLESEL);
    SetExtendedStyle(//LVS_EX_FULLROWSELECT |
    LVS_EX_GRIDLINES |
    LVS_EX_HEADERDRAGDROP |
    LVS_EX_ONECLICKACTIVATE |
    LVS_EX_FLATSB);
    CListCtrl::PreSubclassWindow();
    }这有这一段,这里是干嘛的呢?
      

  2.   

    #define VK_RETURN         13
    #define VK_ESCAPE         27
    看了这个你会不会明白一些
    就是改变了消息
    按回车或空格让窗口失去焦点
    你这个应该是给ListCtrl之类控件做辅助编辑的edit吧
      

  3.   

    就是处理按键消息,13就是0x0D,就是回车键,27就是0x1B,就是ESC按键,上面的代码就是处理这两个按键。
      

  4.   

    你的这个listctrl应该是有特定应用的
    所以在他被创建出来之前需要按需求设置风格
    这些代码就是干这个的
      

  5.   

    This member function is called by the framework to allow other necessary subclassing to occur before the window is subclassed. virtual void PreSubclassWindow( );
     
    PreSubclassWindows这个虚函数的被框架调用允许窗口被子类化之前做一些其它的子类化操作,如修改窗口的样式等等
      

  6.   

    ModifyStyle(LVS_EDITLABELS, 0L);
    ModifyStyle(0L, LVS_REPORT);   //这个LVS_REPORT是干嘛的?
    ModifyStyle(0L, LVS_SHOWSELALWAYS);
    ModifyStyle(0L, LVS_SINGLESEL);
    SetExtendedStyle(//LVS_EX_FULLROWSELECT |
    LVS_EX_GRIDLINES |
    LVS_EX_HEADERDRAGDROP |   //下面这三个又是什么属性,有什么用啊?
    LVS_EX_ONECLICKACTIVATE |
    LVS_EX_FLATSB);
      

  7.   

    LVS_EX_FULLROWSELECT,当一个项目行选择时,它和它的所有子项都将高亮显示
    LVS_EX_GRIDLINES,显示项和它子项周围边线
    LVS_EX_HEADERDRAGDROP,头可以被拖动
    LVS_EX_ONECLICKACTIVATE,当用户单击控件时,发送一个 LVN_ITEMACTIVATE通造消息给父窗口,它也必需启用hot tracking-当用户鼠标移动到一个项目时,高亮显示但不选择。
    LVS_EX_TWOCLICKACTIVATE,当用户双击控件时,发送一个 LVN_ITEMACTIVATE通造消息给父窗口
    LVS_EX_UNDERLINEHOT,hot项显示下划线。
    LVS_EX_UNDERLINECOLD,hot项不显示下划线。
      

  8.   

    你要是这么问的话......
    建议你去看MSDN