运行环境:VS2013 mfc 对话框程序
目的:多线程运行时,子线程跳出一个消息框暂停等待用户输入,跳出的消息框不能影响主界面的输入(鼠标控制移动等)
现在代码:AfxBeginThread启动线程,线程函数里有AfxMessageBox消息
目前的情况:多个子线程跳出消息框后,只有第一个消息框相对主界面时模态的(只有关了这个消息框才能操作主界面),其他消息框不影响主界面输入(非模态);
~~~~~~~~~~~~哪位大大给点思路~~~~~~~~~~~~~~~~~~
暂时的解决思路是,跳出非模态对话框,然后暂停线程,通过模态对话框输入控制线程继续
用户界面方式的线程 中怎么弹出模态对话框呢?
非模态方式弹出 线程不会暂停,就是我现在的思路
追答可以把暂停继续的工作交给主线程(ui线程处理),这个线程 不考虑这些
追问目的就是要在线程内运行过程中(遇到需要暂停的情况)跳出窗口提示(消息框)并暂停,并且不影响主线程ui
追答那单独搞个ui线程控制,好麻烦。。
mfc多线程中弹出对话框的问题
是因为你的两个线程没有同步造成的,原因分析如下:主线程(有main的线程)在执行了所有代码后return返回。由于主线程返回,在main函数外部的C运行时库会调用ExitProcess来使进程退出。因此如果主线程返回了,意味着所有其它线程都会因为ExitProcess而被迫终止。由于创建模态对话框的线程是非正常终止,有它构建...
我用mfc多线程新建对话框,对话框只是闪一下就消失了,该线程就结束了,不...
或,变量dlg要为全局变量 你程序中的是局部变量,生存期showwindow后就结束了
MFC让程序暂停后等待用户按一个继续按钮,程序继续执行,如何实现?
你要把你的主要实现和主界面分开,就是用多线程,一个线程用于处理数据,主界面线程用于显示和接受用户操作,当用户按开始按钮时,开启处理线程,暂停时暂停处理线程,继续时再唤醒处理线程就行了。直接在主界面线程中sleep,肯定会造成界面没有响应的。
MFC 如何关闭非模态对话框 多线程
你要在关闭窗口时让线程也停止,必须让线程自己退出或者直接强制结束。
关于MFC多线程数据传递的问题
我知道的有两种做法:1在主界面线程中,添加一个与这些数据有关的变量,在你的子对话框线程中修改这些变量的值。2、通过消息传递,就是自定义一些消息,然后通过postmessage函数把要传递的值通过参数传递过去。具体postmessage怎么用,去百度一下这个函数的用法就好了。第一种方法简单点,限制的比较死,...
MFC多线程主线程和新建线程执行关系
所以何时响应界面的更新绘制是由你的主线程决定的,如果主线程还在执行某个函数而没有回到消息循环,就不能更新界面,啥时候那个函数执行完了就可以更新界面了。防止线程被打断,是线程同步问题,与这里的问题没啥关系。Windows提供了一系列的线程同步API,你可以使用像自旋锁、临界区、Slim读写锁、条件变量...
MFC编辑框设置数据范围,并在不输入时自动设为默认值
你是基于单线程,多线程和对话框的吗?可以在对话框的oninitdialog函数中设置,设置某个值的默认,也可以为编辑框创建一个变量,mfc会自动给你生成一个变量名,命名你自己做,然后在对话框的cpp文件中找那个变量名,把变量名等号后的值改掉。
这算是MFC 多线程 吗?
不是多线程。你的四个窗口对象都在主线程中,都用一个消息队列。不信你在一个button处理的最后加上while(1);死循环看看,这个时候所有的窗口都死了。如果要在新的线程中创建窗口,可以看看用户界面线程。
mfc非模态对话框怎么建立多线程
mfc非模态对话框怎么建立多线程 1 首先建立MFC应用程序,在项目下面的资源视图中找到对话框资源,然后如下图右键,选择插入对话框 2 然后选中新插入的对话框,在软件的右边有属性对话框,点击修改我们新建对话框的ID和标题名 3 然后将新建的对话框上加一些控件如下图中所示,其它采用默认设置即可 4 选中...
多线程中切换输入法问题
建议: 分析上面的表格内容项,对于空缺项,我们可以找出其中有规律的项,让计算机来自动填写,以提高工作效率,减少由于输入不当带来的误差。例如上面表格共有六项内容,我们只需要输入前三项内容,后三项内容不需要输入,直接可以运用Excel提供的函数从每个人员的身份证号码中分辨出来。