网上也搜了很久,没太清楚。我就是想点击编辑框,也就是每一次编辑框获取焦点后,将其赋空字符,问题是不知道怎么写。是不是给编辑框添加EN_SETFOCUS消息?然后什么派生类(如何派生,点添加类?)中处理PreTranslateMessage?(可以介绍下PreTranslateMessage)。本人初学,希望各位回答细致点。
解决方案 »
- 如何将eidt得到的数值依次打印到txt中
- 简单的文件发送程序 可接受数据总是失败
- VC工程的资源是如何被编译和链接的?
- 我的VC环境中的自动列举成员功能怎么没了?谢谢!
- 如何获得打印机的打印分辨率
- 实在没有分了,各位高手指点指点。
- dshow 回调播视频问题
- 音乐的识别
- 本人的编译时出现以下错误:fatal error C1010: unexpected end of file while looking for precompiled header directive,不知道如何解决?
- 采用SendNotifyMessage会丢失消息吗?
- MFC menu caption
- 我这样定义我的clsid不对么?
设定在编辑框区域响应鼠标左键点击的消息
响应方式为置空响应变量并UpdateData
这个消息在哪里找啊?经常网上说这个,这些WM_开头的和我看到的EN_开头的有什么区别啊
WM就是windows message的意思
是系统发给窗口的
EN通知消息
是控件发给父窗口的
你重载CEdit在它的WM_SETFOCUS消息中处理一下试试
可以通过向导实现
你也可以在网上找些相关资料学习
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"");
}
{
// 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);
}
亲身试验通过,谁用谁知道。
我的意思是只能是pre...吗?,直接translateMessage中操作,是如何捕获的呢