关于VC中自定义消息
来源:百度知道 编辑:UC知道 时间:2024/09/21 01:44:54
举个简单的例子就是从对话框上有一个按钮,点击按钮会发送这个自定义消息,主对话框要捕获这个消息,并在其文本框里显示“响应成功!”就可以了,希望那位高手能帮我写出这段小程序的源码。
不成功的现象是编译没问题,但是从对话框发送的消息主对话框并没有响应,或者说从对话框根本就没发送成功,从对话框确实是模态对话框
主窗口
重载PreTranslateMessage函数
BOOL CTunnelsDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == BN_CLICKED)
{
m_strEdit = "响应成功!";
this->UpdateData(FALSE);
}
return CDialog::PreTranslateMessage(pMsg);
}
从窗口
.h文件中加入
protected:
afx_msg void OnButton(UINT nID);
.cpp文件中加入
BEGIN_MESSAGE_MAP(CVNSLView, CView)
//{{AFX_MSG_MAP(CVNSLView)
ON_WM_DESTROY()
ON_WM_CREATE()
//}}AFX_MSG_MAP
ON_COMMAND(IDC_BUTTON1, OnButton)
END_MESSAGE_MAP()
// IDC_BUTTON1就是从窗口上你要单击的那个按钮的ID
void CVNSLView::OnButton(UINT nID)
{
// 向父窗口发送按钮单击消息
::PostMessage( this->GetParent()->GetSafeHwnd(), BN_CLICKED, nID, 0 );
}
不成功的现象是什么? 如果从对话框是模式的,确实是不可以的
另外,你如果要发送到别一个对话框,要用::SendMessage()而不是SendMessage(),不知道你有没有注意到
----------------------------------------