postmessage(句柄,...)
我想获得主对话框中一个静态控件的句柄,把消息投递过去怎么办
[解决办法]
发送消息改变静态控件的文本:
1、改变静态控件的 ID 为 IDC_TEXT;
2、编写如下代码:
==========================================================
CWnd * pWnd = GetDlgItem(IDC_TEXT);
CString strData = "Hello ";
pWnd-> SendMessage(WM_SETTEXT,0,(LPARAM)(LPCTSTR)strData);
==========================================================
[解决办法]
把静态控件ID改为IDC_TEST,
并关联一变量m_static1。
子对话框中自定义消息
#define WM_SETVALUE WM_USER+1
添加宏映射ON_MESSAGE(WM_SETVALUE, OnSetValue)
添加消息响应函数(类的proctected成员)
afx_msg void OnSetValue();
在适当的地方发送消息PostMessage(WM_SETVALUE);
定义函数体
void CXXXXDlg::OnSetValue()
{
CString str= "测试..... ";
CMainDlg *parent=(CMainDlg*)GetParent();
parent-> m_static1.SetWindowText(str);
}