在StdAfx.h中定义:
#define WM_MYBTMSG WM_USER+112
在发送消息为:
void CTape::Ontuichu()
{
// TODO: Add your control notification handler code here
KillTimer( 1 );
CConsoleTestDlg::shuaxin();
HWND hwnd = ::GetDlgItem(this->GetSafeHwnd(), IDD_CONSOLETEST_DIALOG);
::SendMessage(hwnd, WM_MYBTMSG,0,0); //发送消息
CDialog::OnOK();
}
接收消息的头文件里:
定义: afx_msg void OnMyBtMessage(WPARAM wParam, LPARAM lParam);
在CPP文件里定义:
ON_MESSAGE(WM_MYBTMSG,OnMyBtMessage) 与:
void CConsoleTestDlg::OnMyBtMessage(WPARAM wParam, LPARAM lParam)
{
HWND hwnd = ::GetDlgItem(this->GetSafeHwnd(), IDC_BTN_REDIAL);
::EnableWindow(hwnd, true);
}
为什么不响应消息呀?
#define WM_MYBTMSG WM_USER+112
在发送消息为:
void CTape::Ontuichu()
{
// TODO: Add your control notification handler code here
KillTimer( 1 );
CConsoleTestDlg::shuaxin();
HWND hwnd = ::GetDlgItem(this->GetSafeHwnd(), IDD_CONSOLETEST_DIALOG);
::SendMessage(hwnd, WM_MYBTMSG,0,0); //发送消息
CDialog::OnOK();
}
接收消息的头文件里:
定义: afx_msg void OnMyBtMessage(WPARAM wParam, LPARAM lParam);
在CPP文件里定义:
ON_MESSAGE(WM_MYBTMSG,OnMyBtMessage) 与:
void CConsoleTestDlg::OnMyBtMessage(WPARAM wParam, LPARAM lParam)
{
HWND hwnd = ::GetDlgItem(this->GetSafeHwnd(), IDC_BTN_REDIAL);
::EnableWindow(hwnd, true);
}
为什么不响应消息呀?
解决方案 »
- 把焦点落到别处//为什么Listbox还是被选中状态的蓝底色?
- MFC对话框webbrowser控件编程中,怎样遍历选择区域中的网页元素?
- C++如何将 写字板(RTF) 转换为 记事本(TXT)
- SDK中如何打开一个非模态对话框?
- 文件夹改变消息
- 怎么动态改变CPropertySheet上面tab选项上的icon图标,tab上面的图标需要定时动态变换,而且需要变化的下一个图标是不可以预知
- MFC中CToolBar的通知消息有哪些?(不好意思,没办法给分)
- 操作word的shapes画图问题
- vector为什么会出现如下的问题呢?奇怪呀
- 有内存泄漏吗?
- 这怎么实现的?征集创意,有心人过来看看.
- VC++断点调试的方法
CConsoleTestDlg *pTestDlg;
HWND hwnd = ::GetDlgItem(pTestDlg->GetSafeHwnd(), IDD_CONSOLETEST_DIALOG);
::SendMessage(hwnd, WM_MYBTMSG,0,0); //发送消息
{
// TODO: Add your control notification handler code here
KillTimer( 1 );
CConsoleTestDlg::shuaxin();
CConsoleTestDlg * tempDlg;
HWND hwnd = ::GetDlgItem(tempDlg->GetSafeHwnd(), IDD_CONSOLETEST_DIALOG);
::SendMessage(hwnd, WM_MYBTMSG,0,0); //发送消息
CDialog::OnOK();
}
这么写还是没用呀。怎么回事?谢谢
HWND hwnd = ::GetDlgItem(pTestDlg->GetSafeHwnd(), IDD_CONSOLETEST_DIALOG);
::SendMessage(hwnd, WM_MYBTMSG,0,0); CConsoleTestDlg *pTestDlg;
::SendMessage(pTestDlg->m_hWnd, WM_MYBTMSG,0,0);
HWND hwnd = ::GetDlgItem(this->GetSafeHwnd(), IDD_CONSOLETEST_DIALOG);
你这句的意思是:获取CTape(this所指对话框)这个对话框对象上的ID为IDD_CONSOLETEST_DIALOG的空间的
句柄!IDD_CONSOLETEST_DIALOG显然是个对话框的ID,在CTap上怎么会有拥有这个ID的控件呢?
返回的句柄肯定不对!
如果要正确的发送,要看你这两个类的具体调用关系:
CTap和CConsoleTestDlg