其实弹出什么都无所谓,主要是编辑框的点击事件处理遇到点问题,我试验了Edit和RichEdit2.0控件,试验了网上相传的重载Dlg::PreTranslateMessage(MSG* pMsg)方法;SetFocus方法;自己定义事件方法....都没有解决我遇到的问题,可能是我实现的不对,请大家帮忙解决,谢谢!
我想在点击编辑框时弹出个东西,但是上述方法试验都遇到同一问题,就是从我第一次点在编辑框上,弹出提示后,以后我不点编辑框,点对话框上的其他任何位置,都会弹出提示。似乎我处理的不是编辑框的点击事件。我如何才能获得正常效果呢?“点编辑框有提示,点其他位置无反映。”
我也派生一个编辑框类,在派生的类中处理PreTranslateMessage处理了点击事件,可是还是不行,帖一个方法的代码,各位看是不是有问题。如果有更好的实现方法,也请赐教,能实现目的就行。
BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hWnd = ::GetFocus();
int iID=::GetDlgCtrlID(hWnd);
if(iID==IDC_EDIT)
{
AfxMessageBox(_T("点我!"));
}
}////////////////或者////////////////////////////////
if (pMsg->message == WM_LBUTTONDOWN)
{
CWnd * pWnd = (CWnd*) GetDlgItem(IDC_RICHEDIT21);
if (pWnd == GetFocus())
{
AfxMessageBox(_T("点我!"));
return TRUE;
}
}
////////////////////////////////////////////////////////return CEdit::PreTranslateMessage(pMsg);
}
我想在点击编辑框时弹出个东西,但是上述方法试验都遇到同一问题,就是从我第一次点在编辑框上,弹出提示后,以后我不点编辑框,点对话框上的其他任何位置,都会弹出提示。似乎我处理的不是编辑框的点击事件。我如何才能获得正常效果呢?“点编辑框有提示,点其他位置无反映。”
我也派生一个编辑框类,在派生的类中处理PreTranslateMessage处理了点击事件,可是还是不行,帖一个方法的代码,各位看是不是有问题。如果有更好的实现方法,也请赐教,能实现目的就行。
BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hWnd = ::GetFocus();
int iID=::GetDlgCtrlID(hWnd);
if(iID==IDC_EDIT)
{
AfxMessageBox(_T("点我!"));
}
}////////////////或者////////////////////////////////
if (pMsg->message == WM_LBUTTONDOWN)
{
CWnd * pWnd = (CWnd*) GetDlgItem(IDC_RICHEDIT21);
if (pWnd == GetFocus())
{
AfxMessageBox(_T("点我!"));
return TRUE;
}
}
////////////////////////////////////////////////////////return CEdit::PreTranslateMessage(pMsg);
}
我怎么看见了这个return CEdit::PreTranslateMessage(pMsg);而上面的那个方法没有这句
{
if (pMsg->message == WM_LBUTTONDOWN)
{
CPoint ptCur;
GetCursorPos(&ptCur); CRect rcWnd;
GetDlgItem(IDC_EDIT1)->GetWindowRect(rcWnd); if(rcWnd.PtInRect(ptCur))
{
MessageBox("点我!");
} } return CDialog::PreTranslateMessage(pMsg);
}
呵呵...我只是把中间的一部分写了两种方法,前面和后面的一样,所以没有写~问题我解决了,见http://blog.csdn.net/xiaoyaofriend/article/details/7754056