VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1135|回复: 6

[已解决]MFC关闭模态对话框

[复制链接]
95_avatar_middle
最佳答案
0 
在线会员 发表于 2020-5-19 21:19:04 | 显示全部楼层 |阅读模式
     我新创建了一个派生于 CDialog 的对话框类,并在 主对话框类 的线程初始化函数中 在主线程创建模态对话框之前 新建了一个模态对话框,怎样才能在 这个新建的模态对话框中 不点击按钮,不阻塞该对话框线程的条件下 触发 OnOK() ?;
MFC关闭模态对话框
最佳答案
70_avatar_small
2020-5-20 14:05:04
友元函数没咋用过,你可以在Clogin里定义一个public  函数啊,然后再里边调用OnOK()
不过我觉得更好的方法是定义一个自定义消息,在消息响应里调用OnOK();这样在多线程情况下也是安全的,线程里调用窗口类对象的函数,如果处理不仔细可能产生其他影响。




上一篇:算法知识
下一篇:mysql常用
97_avatar_middle
最佳答案
2 
在线会员 发表于 2020-5-19 22:16:11 | 显示全部楼层
对话框初始化的时候执行OnOK
70_avatar_middle
最佳答案
49 
在线会员 发表于 2020-5-20 09:18:57 | 显示全部楼层
看不懂你想干啥,在你需要的时候直接调OnOK()就行了
95_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-5-20 11:12:10 | 显示全部楼层
tony666 发表于 2020-5-20 09:18
看不懂你想干啥,在你需要的时候直接调OnOK()就行了

是这样的,我在做一个登录程序,当收到服务器验证通过的消息后就关闭 登录界面模态对话框 进入用户界面。我基于CDialog 派生了一个 对话框类 Clogin。 我把验证代码放在了一条线程中,OnOK是 Dialog 类的protect 函数,线程函数不在作用域无法调用,所以我试了一下把线程函数 设置为 Clogin类 的一个友元函数。调用是可以了,但是一调用就直接程序崩溃。我把 同样调用代码放到 Clogin 类的一个按钮响应函数中就能正常调用。
70_avatar_middle
最佳答案
49 
在线会员 发表于 2020-5-20 14:05:04 | 显示全部楼层    本楼为最佳答案   
bestAnswer
友元函数没咋用过,你可以在Clogin里定义一个public  函数啊,然后再里边调用OnOK()
不过我觉得更好的方法是定义一个自定义消息,在消息响应里调用OnOK();这样在多线程情况下也是安全的,线程里调用窗口类对象的函数,如果处理不仔细可能产生其他影响。
95_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-5-20 21:16:05 | 显示全部楼层
tony666 发表于 2020-5-20 14:05
友元函数没咋用过,你可以在Clogin里定义一个public  函数啊,然后再里边调用OnOK()
不过我觉得更好的方 ...

自定义消息可以实现,刚开始我用自定义消息被360直接拦截了,我以为不行,。。。。
58_avatar_middle
最佳答案
58 
online_vip 发表于 2020-5-21 06:17:58 | 显示全部楼层
IMYFALT 发表于 2020-5-20 21:16
自定义消息可以实现,刚开始我用自定义消息被360直接拦截了,我以为不行,。。。。


很久没用360了,听说360杀毒算法过于粗暴,有一点点风险它就报毒,做成品软件时,网上找个过期签名打上试试。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-29 14:41

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表