各位好:请问如何判断无模对话框的OK和Cancel按钮按下消息? 急用! 我的意思是在你的对话框中,接收到OnOK或OnCancel消息后,向主窗口发送消息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接在OnOK或OnCancel内实现你的功能就可以了,它可以访问父窗口 无模式,Sorry,请用sxbyl的方法:在对话框中向父窗口发送一个自定义消息,这可能是较好的解决方案! 呵呵,小弟在此就把实现的代码和方法写写吧:)首先为了实现这种消息发送你必须自己定义Windows消息,那我们就先定义如下两个消息const WM_OKPRESSED = WM_USER+100;const WM_CANCELPRESSED = WM_USER + 101;然后在对话框的OnOK和OnCancel中填写如下代码void TestDialog::OnOK(){ UpdateData(TRUE);//将更新变量数据 SendMessage(hWnd,WM_OKPRESSED,0,0); //hWnd 主窗口句柄,也就是要处理并接受上面定义的那两个消息的窗口句柄句柄}void TestDialog::OnCancel(){ SendMessage(hWnd,WM_CANCELPRESSED,0,0); //hWnd 主窗口句柄,也就是要处理并接受上面定义的那两个消息的窗口句柄句柄}//窗口的处理函数HRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam){ switch(msg) { .... .... case WM_OKPRESSED: ...... //若收到此消息说明用户按下了OK按钮,在这里就可以添加 ...... //相应的处理代码了 break; case WM_CANCELPRESSED: ....... //若收到此消息说明用户按下了Cancel按钮, ...... break; ......}如果你用的是MFC则可以用MFC提供的消息映射来响应这两个自定义消息,方法如下ON_MESSAGE(WM_OKPRESSED,OnDialogOk)ON_MESSAGE(WM_CANCELPRESSED,OnDialogCancel)OnDialogOk和OnDialogCancel为处理这两个自定义消息的函数名称希望对你有些帮助:) 用消息比较合理不过你的无模式对话框,用ONOK()是调用的ENDDIALOG()函数,而无模式对话框应该用DESTROYWINDOW()函数才能完全释放 如何为动态创建的按钮设置和系统一样的字体 一个非常奇妙的网络问题 基于对话框的程序,没有错误,可是运行后对话框不显示 变量名怎么取呢 如何将菜单资源与程序主体联系起来 我的 IE 主页让人改成灰字了,我改不了了呀大哥大姐们救救我呀, COM版本 市场上有没有卖vc6.0英文版的,是不是用英文版较好。 在CListCtrl中显示数据库的100000条纪录时程序特别慢,怎么办? 一个小调查:有多少程序员讨厌微软? 怎样通过LPT口向数控机床传输数控程序 有关光驱的问题?
实现你的功能就可以了,它
可以访问父窗口
首先为了实现这种消息发送你必须自己定义Windows消息,那我们就先定义如下两个消息
const WM_OKPRESSED = WM_USER+100;
const WM_CANCELPRESSED = WM_USER + 101;
然后在对话框的OnOK和OnCancel中填写如下代码
void TestDialog::OnOK()
{
UpdateData(TRUE);//将更新变量数据
SendMessage(hWnd,WM_OKPRESSED,0,0);
//hWnd 主窗口句柄,也就是要处理并接受上面定义的那两个消息的窗口句柄句柄}
void TestDialog::OnCancel()
{
SendMessage(hWnd,WM_CANCELPRESSED,0,0);
//hWnd 主窗口句柄,也就是要处理并接受上面定义的那两个消息的窗口句柄句柄
}
//窗口的处理函数
HRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
....
....
case WM_OKPRESSED:
...... //若收到此消息说明用户按下了OK按钮,在这里就可以添加
...... //相应的处理代码了
break;
case WM_CANCELPRESSED:
....... //若收到此消息说明用户按下了Cancel按钮,
......
break;
......
}
如果你用的是MFC则可以用MFC提供的消息映射来响应这两个自定义消息,方法如下
ON_MESSAGE(WM_OKPRESSED,OnDialogOk)
ON_MESSAGE(WM_CANCELPRESSED,OnDialogCancel)
OnDialogOk和OnDialogCancel为处理这两个自定义消息的函数名称
希望对你有些帮助:)
不过你的无模式对话框,用ONOK()是调用的ENDDIALOG()函数,而无模式对话框应该用
DESTROYWINDOW()函数才能完全释放