GetDlgItem问题
我用这种方法捕获在控件中按下回车键:BOOL PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
CWnd* p = GetDlgItem(IDC_EDIT1);
if(pMsg->wParam==VK_RETURN && pMsg->hwnd==p->m_hWnd)
{ AfxMessageBox("OK");
return TRUE;
} }
return CDialog::PreTranslateMessage(pMsg);
}//----------------------------------------------
GetDlgItem(IDC_EDIT1); 获取的是一个edit控件的CWnd指针
以上是没问题的,但如果我要捕获的是一个combobox控件,就不行了
例如:BOOL PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
CWnd* p = GetDlgItem(IDC_COMBO1); //!!!!
if(pMsg->wParam==VK_RETURN && pMsg->hwnd==p->m_hWnd)
{ AfxMessageBox("OK");
return TRUE;
} }
return CDialog::PreTranslateMessage(pMsg);
}请问如何在一个combobox中捕获回车消息?
我用这种方法捕获在控件中按下回车键:BOOL PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
CWnd* p = GetDlgItem(IDC_EDIT1);
if(pMsg->wParam==VK_RETURN && pMsg->hwnd==p->m_hWnd)
{ AfxMessageBox("OK");
return TRUE;
} }
return CDialog::PreTranslateMessage(pMsg);
}//----------------------------------------------
GetDlgItem(IDC_EDIT1); 获取的是一个edit控件的CWnd指针
以上是没问题的,但如果我要捕获的是一个combobox控件,就不行了
例如:BOOL PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
CWnd* p = GetDlgItem(IDC_COMBO1); //!!!!
if(pMsg->wParam==VK_RETURN && pMsg->hwnd==p->m_hWnd)
{ AfxMessageBox("OK");
return TRUE;
} }
return CDialog::PreTranslateMessage(pMsg);
}请问如何在一个combobox中捕获回车消息?
解决方案 »
- 无边框 无标题的窗口 如何响应任务栏消息
- 自绘CTreeCtrl,当出现横向滚动条,向右滚动后,item的rect没变,好像item没有跟着滚动一样。
- 调通串口的问题
- VS2005中怎么导入ActiveX控件?
- 关于windows消息循环的问题
- 在非对话框容器中调用activex出错
- 继承 CDockablePane 类,重写Onsize消息,想通过鼠标拉动边框改变大小,但是在拉动过程中不改变,只有鼠标停止拉动才会改变大小,怎么实现
- 怎么会这样
- 分乃身外之物----取之于民,用之于民:像最后1000分冲刺
- 软考
- DLL非接口内部函数调用的复杂问题
- 16位操作系统为什么称为16位? 32位操作系统为什么称为32位?
if(pMsg->hwnd==m_combo.GetSafeHwnd())
就不行
具体内容等下..
if(pMsg->message == WM_KEYDOWN)
{
CWnd* p = GetDlgItem(IDC_COMBO1);
HWND ComEdit=FindWindowEx(p->m_hWnd,NULL,"Edit",NULL);
if(pMsg->wParam==VK_RETURN && pMsg->hwnd==ComEdit)
{
AfxMessageBox("OK");
return TRUE;
} }
对于窗口的关系有时候还是先用SPY++工具看看关系,再开始代码.有什么问题的话继续..
应该能解决你的问题..OK 结帐...谢谢了..
combobox是一个组合型窗口,如果你是要捕获combobox的edit消息可以用
enumchildwindows这个API来取得EDIT的hwnd