void CHeadDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CDialog1 dialog1;
m_dialog1 = &dialog1;
::PostMessage(m_dialog1->m_hWnd, WM_MYMSG, NULL, NULL);
m_dialog1->DoModal();
}
void CDialog1::OnMyMsg(WPARAM wParam, LPARAM lParam)
{
m_headdlg = (CHeadDlg*)lParam;
}问题:OnMyMsg(...)函数根本执行不到。
就是说消息根本发不到CDialog1.请大大指出如何改,不要说m_dialog1->m_hWnd是错的。
我知道是错的。因为我得不到CDialog1的句柄。不知道怎么得到。
解决方案 »
- IOCP收发/连接/接受连接全异步处理
- 一个文件大小问题
- 如何Enable打印对话框上的“当前页面”radio?
- 我现在在做hook 一个api的工程,api函数为TerminateProcess,可是总不成功,哪位高手帮我看看,雅克在不在?
- openGL贴圆柱纹理效果不行,帮我看看怎么改进
- 怎么样在登录界面写验证用户名和密码的代码?用vc和sql 急!
- 为什么我每次连接SQL数据库并断开后,程序的内存都要增加4K?
- 各位老大,我遇到了这种link错误,咋回事?
- 学VC是先学C还是C++
- VC与matlab混合编程,窗口自动关闭问题,迷茫中~求赐教
- Cfile 有关文件写入的问题。
- 如何得到另外一个对话框的句柄
第二行代码执行完后,对话框还不弹出来。
第三行代码执行完后,对话框已经关闭。可以试试,无模式对话框
Create
ShowWindow
建议你用Create创建CDialog1,创建之后再Postmessage()
i服了you
在刚才的帖子里我已经说了
在没DoModal()之前,窗口没创建 不存在句柄
你可以给CDialog1增加变量或者函数然后配合CDialog1::OnInitDialog完成你的工作
CDialog1 dialog1;
::PostMessage(dialog1.m_hWnd, WM_MYMSG, NULL, NULL);
dialog1.DoModal();
这句话的意思不是你Postmessage的消息,而是鼠标、键盘等交互消息,也就是说你无法在通过上一级父窗口的按钮事件来PostMessage了