VC中SendMessage的问题
我要给一个对话框发送消息,不用FindWindow(因为几个对话框标题相同)CWnd*pWnd=GetDlgItem(IDD_TST_DIALOG);pWnd->Send...
我要给一个对话框发送消息,不用FindWindow(因为几个对话框标题相同)
CWnd * pWnd=GetDlgItem(IDD_TST_DIALOG);
pWnd->SendMessage(WM_MYMESSAGE,1,0);
编译正确,运行出错.用PostMessage也一样,请问是什么原因? 展开
CWnd * pWnd=GetDlgItem(IDD_TST_DIALOG);
pWnd->SendMessage(WM_MYMESSAGE,1,0);
编译正确,运行出错.用PostMessage也一样,请问是什么原因? 展开
2个回答
展开全部
看情形应该是pWnd 指向的不是一个有效的窗口。
把语句改成如下代码测试一下。另外GetDlgItem应该是获取窗口自身控件句柄的函数。
CWnd * pWnd=GetDlgItem(IDD_TST_DIALOG);
if (IsWindow(pWnd))
{
pWnd->SendMessage(WM_MYMESSAGE,1,0);
}
else
{
AfxMessageBox("pWnd不是一个有效的窗口");
}
把语句改成如下代码测试一下。另外GetDlgItem应该是获取窗口自身控件句柄的函数。
CWnd * pWnd=GetDlgItem(IDD_TST_DIALOG);
if (IsWindow(pWnd))
{
pWnd->SendMessage(WM_MYMESSAGE,1,0);
}
else
{
AfxMessageBox("pWnd不是一个有效的窗口");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询