我用的是VS2005,要做的就是点击个编辑框弹出个对话框,并在对话框中输入数字到编辑框中,我的实现方法是:
1:新建一个对话框---添加一个编辑框(EDIT)---右键编辑框—添加类(类名Edit);
2: 再建立一个要弹出的对话框——右键该对话框——添加类(类名Dialog);
3: 为Edit添加LButtonDown消息;
4:在消息函数中添加代码:
Dialog dlg;
dlg.DoModal();可问题是点击编辑框没有任何反应,这是怎么回事呢?我哪里出现问题了?我又试了另一种方法:就是在Edit.cpp中添加函数:
BOOL AcameraCT::PreTranslateMessage(MSG* pMsg)
{
int buID;
CWnd* pWnd=WindowFromPoint(pMsg->pt); //获得指定点句柄
buID=pWnd->GetDlgCtrlID();//获得该句柄的ID号。
if(pMsg->message==WM_LBUTTONDOWN)
{
if(buID==IDC_EDIT1) //按下
{
Dialog dlg;
dlg.DoModal();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
这样也没有任何反应,又哪里出问题了呢?望高手们指点指点啊。
1:新建一个对话框---添加一个编辑框(EDIT)---右键编辑框—添加类(类名Edit);
2: 再建立一个要弹出的对话框——右键该对话框——添加类(类名Dialog);
3: 为Edit添加LButtonDown消息;
4:在消息函数中添加代码:
Dialog dlg;
dlg.DoModal();可问题是点击编辑框没有任何反应,这是怎么回事呢?我哪里出现问题了?我又试了另一种方法:就是在Edit.cpp中添加函数:
BOOL AcameraCT::PreTranslateMessage(MSG* pMsg)
{
int buID;
CWnd* pWnd=WindowFromPoint(pMsg->pt); //获得指定点句柄
buID=pWnd->GetDlgCtrlID();//获得该句柄的ID号。
if(pMsg->message==WM_LBUTTONDOWN)
{
if(buID==IDC_EDIT1) //按下
{
Dialog dlg;
dlg.DoModal();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
这样也没有任何反应,又哪里出问题了呢?望高手们指点指点啊。
解决方案 »
- 怎么实现,自定义一个函数,返回指定目录的所有图片
- 各位大哥,进来给看看这个控件问题,谢谢拉
- 请问如何在TreeView中加入Checkbox?
- vc link bug,大牛请进
- typedef void(*PRINTPREVIEW) (CDC &MemDC, int PrnInfo);这句话是什么意思啊?谢谢!
- 一个简单的问题,请教.
- 怎样得到CListCtrl各列(标题栏)的文字?
- 能给我讲讲DoDataExchange(CDataExchange* pDX)函数的用途和用法啊?
- 请问各位,小第现在想学VC++6.0可不知道看哪本书比较好???请大家推荐几本好吗?(本者有分!)
- 关于MCI(媒体控制接口)编程
- 一个字节的十六进制数打印的问题
- 请问如果是软件导致电脑死机,重启后,有没有什么痕迹表明是什么程序导致的
edit本身不处理LButtonDown消息,字类化或者在PreTranslateMessage里处理
或者简单点,直接捕捉编辑框的WM_FOCUS消息
用SetFocus作为消息的话好像要设置什么东西吧?
直接加上
Dialog dlg;
dlg.DoModal();不行啊,小弟刚学不久,该怎么设置啊?
void CNewEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CEdit::OnLButtonDown(nFlags, point); CNewDlg dlg;
dlg.DoModal();
}
{
if(pMsg->message==WM_LBUTTONDOWN&&pMsg->hwnd == GetDlgItem(IDC_EDIT1)->m_hWnd)
{
AfxMessageBox(_T("aaa"));
return TRUE;
}
}
if( pMsg->message == WM_LBUTTONDOWN )
{
CRect rc;
GetDlgItem(IDC_EDIT1)->GetWindowRect(&rc);
if(rc.PtInRect(pMsg->pt))
{
MessageBox("按下edit");
}
}