网上也搜了很久,没太清楚。我就是想点击编辑框,也就是每一次编辑框获取焦点后,将其赋空字符,问题是不知道怎么写。是不是给编辑框添加EN_SETFOCUS消息?然后什么派生类(如何派生,点添加类?)中处理PreTranslateMessage?(可以介绍下PreTranslateMessage)。本人初学,希望各位回答细致点。

解决方案 »

  1.   

    响应GetFocus,在函数里SetSel,ReplaceSel
      

  2.   

    为编辑框设定CString类型变量
    设定在编辑框区域响应鼠标左键点击的消息
    响应方式为置空响应变量并UpdateData
      

  3.   

    楼上说的很好就是响应getfocus
      

  4.   

    直接在WM_SETFOCUS消息中SetWindowsText("");
      

  5.   


    这个消息在哪里找啊?经常网上说这个,这些WM_开头的和我看到的EN_开头的有什么区别啊
      

  6.   

    在添加向导里能找到
    WM就是windows message的意思
    是系统发给窗口的
    EN通知消息
    是控件发给父窗口的
    你重载CEdit在它的WM_SETFOCUS消息中处理一下试试
      

  7.   

    所谓重载就是通过CEdit派生你个你自己的类
    可以通过向导实现
    你也可以在网上找些相关资料学习
      

  8.   

    CWnd*cwnd=AfxGetMainWnd();//获得父窗口句柄,在此即为调用对话框的edit控件所在的对话框cwnd->SetDlgItemText(IDC_EDIT_LONG,_T(""));//把空值放在edit控件里,即置空了
      

  9.   

    如果你用对话框编辑器,那么,你可以右击你对话框上的那个编辑框控件,跳出一个菜单,选择“添加消息处理程序”,随后楼主在列表中优雅的选中WM_SETFOCUS。紧接着,楼主只需讲另个list里面的光标停留在你那个对话框的类中。随后,楼主便可移动鼠标于“添加”按钮上,轻拂鼠标左键。最后楼主抬起双手于键盘上,在新添加的事件中写上:你对话框的变量=_T("");UpdateData(false);
      

  10.   

    在你的编辑框所在的类的头文件中(.h文件)添加消息响应函数:
    afx_msg void OnEnSetfocusEdit1();在你的编辑框所在的类的实现文件中(.cpp文件)添加消息:
    ON_EN_SETFOCUS(IDC_EDIT1, &CTestDlg::OnEnSetfocusEdit1)//IDC_EDIT1改成你编辑框的ID消息响应函数的实现:
    void CTestDlg::OnEnSetfocusEdit1()//CTestDlg改成你所在类的类名
    {
      CEdit *pEdit=(CEdit *)this->GetDlgItem(IDC_EDIT1);
      pEdit->SetWindowText(L"");
    }
      

  11.   

    BOOL C**Dlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if ( pMsg->message == WM_LBUTTONDOWN)
    {
    if (pMsg->hwnd == m_Title(CEdit的控件变量).m_hWnd)
    {
    m_Title.SetWindowText(_T(""));
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
    亲身试验通过,谁用谁知道。
      

  12.   

    你回答的很好,再问下:如何捕获WM_CHAR消息呢?
      

  13.   


    我的意思是只能是pre...吗?,直接translateMessage中操作,是如何捕获的呢