MFC更新界面,用哪种方式好

最近在做一个MFC对话框程序。情况是这样的,
一、程序主对话框上,点击按钮,打开一个非模态的子对话框窗口,子对话框里执行一些操作后需要把操作的结果跟新到主对话框上。想到两种方式:
1.子对话框窗口类中保存主对话框指针,然后在子对话框窗口类利用该指针更新主对话框界面
2.自定义消息,利用SendMessage或PostMessage函数发送消息到主对话框,函数的lParam参数保存操作的结果。主对话框收到消息后更新界面。
请问哪一种方式好。

二、子对话框类中创建了一个线程,线程里执行一些操作,操作结果需要更新到子对话框界面上。还是同样的问题,是传递指针好,还是利用消息好。之前学过C#,C#里面,非UI线程无法直接访问UI线程的界面元素。

恳请各位路过的大神指导一下

mfc

2个回答

第一个,消息好。第二个问题我觉得只能用消息,不能用指针,因为跨了线程了,应该可能会产生同步问题。总而言之,消息是安全的数据传输方式。

一般用PostMessage的方式,异步,同时把数据给主UI线程来更新界面。而不是直接操作界面

wh230308
冰川人看世界 谢谢您的回答,但只能采纳一个人
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用哪种方式存储好?
现固定时间接受一组数据100~300字节不等,想要存入数据库中,是把数据转化为字符串存为Varchar还是直接用Varbinary来存储好?
android推送用哪种方式好?
现在要做一个推送服务,服务器推送设备异常信息与用户充值账单。用MQTT推送应该好一点吧?(虽然MQTT缺点是容易被窃取信息,但是这些信息并不重要)。还有如果是MQTT推送,那么手机接收这些信息的时候能不能以短信的形式显示信息?
..............................................到底用哪种方式好?
前些天问过一次,不过后来做别的事去了,现在又提上了议程,网上银行,本来我准备用快钱,而且找了一些相关资料,但是象快钱和网银在线这些都是收取百分之1的手续费,现在考虑到该企业规模比较大,交易金额也比较高,所以觉得有点太贵了,100W要交1W的手续费。rn 也想到要和银行直接对接,不知道手续费是不是要便宜些,但是有人说这个代价比较高,实时交易比较难实现,不知道真的还是假的,特意来参考一下大家的意见,多谢了rn 分不多,以后再补上..rn
哪种连接方式好?
第一种rn using (SqlConnection connection = new SqlConnection(DBConnection.NormalConnString))rn rn connection.Open();rn tryrn rn rn for (int i = 0; i < 10; i++)rn rn SqlTransaction transaction = connection.BeginTransaction(); rn USER.INSERT(transaction, 1111, "测试"+i);rn if (i > 5)rn rn transaction.Rollback();rn rn elsern rn transaction.Commit();rn rn rn rn catch(Exception ex)rn rn rn rn rnrn第二种rnrnrn for (int i = 0; i < 10; i++)rn rn tryrn rn using (SqlConnection connection = new SqlConnection(DBConnection.NormalConnString))rn rn connection.Open();rn SqlTransaction transaction = connection.BeginTransaction();rn USER.INSERT(transaction, 1111, "测试" + i);rn if (i > 5)rn rn transaction.Rollback();rn rn elsern rn transaction.Commit();rn rn rn rn catch (Exception ex)rn rnrn rn rn需求,将有大量的用户访问网站,并且进行频繁操作,rn以上是后台循环更新的一种方法,数据量可能在几千条,请问用哪种方式比较好?
sql 连接字符串用哪种方式好?
我想让客户端软件在局域网内不同的网段上能够访问sqlsever2008服务器,是用服务器名的连接字符串好,还是ip的连接字符串好?这两种各有什么特点呢?
用哪种方式存储一个文件好?
我想在网上下载程序,是把该程序直接存在数据库中好?rn还是只存下载的地址好?rn还是有其他更好的方法?rn
socket阻塞和非阻塞,用哪种方式好?
我刚开始学网络编程,看别人的源码很多都是用多线程的阻塞方式,但一般的教材上又说异步IO比阻塞方式更好,如果要开发一个通讯软件,用哪种方式好呢,恳请高手指教。
对文本文件加密,用哪种方式好
原来打算用DES,后因密钥位数太少被否定rnrn需求本系统生成的文本数据格式,将作为另一个系统的数据输入,两边的开发语言不同(Java Vs C++)rnrnRSA好像很那保存public key 和prviate keyrnrn
VC 中记时用哪种方式好.
1小时不超过1-10秒的误差,,,rnrn这要求不知道算不算高rnrn请大家给点建议.
串口通信编程用哪种方式好?
我最近要用到串口编程,在网上查找了一下,讨论串口通信的文章还挺多,但方法各异,主要集中在以下几种:rn1)用MSCOMM.OCXrn2)用CreateFile()打开通信口rn3)用moxa的pcomm pro库rn请问各位对以上方式有何独到见解,认为哪种较好,或还有什么别的好方法,望赐教。
请教高手,用哪种数据方式好.
我有一万个客户,每个客户每天都产生一定数量的交易记录,我是为每个客户开立一个单独的表好呢?还是用一个表记录所有客户的交易记录好呢?这两种情况哪种速度快,(第一种要创建上万个表,第二种数据记录每天会成倍增加),而且我的SQL服务器是放在互联网上的.请教请教,谢谢...rn
用哪种网络模型好
以前做网络通信方面的东西比较少,现在要做个服务端程序,主要功能是向客户端发送各种控制指令并能实时接收并显示服务端发送上来的图片,图片大小几十K,每个客户端每秒大概有5张左右,不超过十张,同时只有一个客户端会上传图片,同时连接的客户端数量不超过20,主要需求就这些rn我用VC的异步通信类做过一个简单的,但是在接收数据量比较大的时候OnReceive函数就不触发了,一直没找到原因,没办法只好弄了个计时器定时自己去调用Receive函数接收,但是效率很低rn现在想重新做个服务端,使用高效点的模型,请问哪种模型适合?
做浏览器界面的话用哪种界面控件好?
做浏览器界面的话用哪种界面控件好?而且能支持换肤或换颜色的,像傲游那样的浏览器界面(注,只要界面,如工具栏标签栏那样的,功能很简单我自己写)
请问,到底哪种方式好?
现在好多bbs或者是文档资料中心都采用将数据放到静态的页面中,数据库中只有一个标头信息,这样和把资料放到数据库中相比,是效率高?但是这样的话可能会出现硬盘上的文件信息和数据库中的标头不同步,而且管理帖子的时候还要用程序处理文件系统,这样需要较大的权限,而且处理并不是很准确。rnrncsdn就是将数据放在静态的xml文件中的,
用哪种工具好?
毕设要做一个软件配置管理方面的数据库,但是我对这方面的开发工具不太了解,想请教一下,用哪种工具好呢?或者哪种工具以后会更有用?PB?VB?还是其他?谢谢!rn
远程连接数据库,哪种方式好?
一,客户端直接连接数据库,从数据库中读数据库,改数据库。rn二,有个客户端,还有个服务器端,服务器端和数据库放在同一台电脑上,客户端连接服务器端,发送给服务器端指定,然后服务器端对数据库进行各种操作。rn各有什么优缺点?rnrn纯C++怎么连接SQL呀?数据库的读写?不用CB的控件。
不知道哪种激活方式好?????
我对系统进行了修复安装,现在已经变成未激活的了,下面该如何激活?rnrn我下的有那个401111的电话激活程序,也有一个名为reset5setup的激活程序,不知道哪个更好?rn我想装SP1,是装完再激活,还是先激活再装SP1????????rn大家把激活步骤给我说说,谢谢!!!rnrn
哪种MV的更新方式更好?
Which Refresh mode is better in my case rnFor a table with 1,000,000 records and the daily changes to the table rnmight be 10,000 records.rnrnTry to sync this table by using materialized view .rnrnUnder this case , Which refresh mode is better to be choosed ?rnFast or Complete ?rnrnInitially I thought Fast Refresh is better but now I am quite confused actually . Because I think to search 10,000 in 1,000,000 rnone by one might be more cost than a complete replacement?rnrnrn
web打印哪种方式好??
web打印哪种方式好??rnCrystalReport能否实现web页面打印?
用哪种方式?
怎样设计窗口rn把数据表中有些记录中相等的数据,在一个地方显示,并把记录数量也显示出来rn比如:rntablernrn列1 列2 列3 列4 列5rn1 A 100 2008-10-1 urn9 B 100 2008-10-1 urn3 A 20 2008-10-2 Vrn4 c 30 2008-10-8 Drn7 D 30 2008-10-8 Drn怎样在界面中显示如下:rn1 rn 2008-10-1 rn9 rn 100 rn urn记录数: 2rn rn
更新界面方式
使用界面主handler线程更新 final Handler myHandler = new Handler(); //更新调用out方法 public void out(final String context) { //具体更新内容 final Runnable myUpdateUIRunnable = new Runnable()
用VC开发ORACLE数据库,用哪种连接方式好?
导师要求用VC开发ORACLE数据库,在选择连接方式上犯难了rnrnODBC?rnADO?rn还是OCI?rnrn前两种方式例子不少,似乎比较好上手。但是好象有先天的不足,第三种从没有听说过,也没有见到例子rnrn请各位谈谈吧,到底用哪种好点?
请问用VC做数据库用哪种方式好?
我初学VC,想从数据库入手,我想知道目前比较流行的VC数据库技术是用ODBC,还是DAO,OLEDB还是ADO等等?并且能告知我哪儿有有关的资料。谢谢!
网站开发用哪种语言好?
麻烦大家了!rn我现在是大一的学生,老师要求做一个动态的网站。我想以后继续学习,所以打算选择一种语言深入学习。rn开发平台目前在用ASP还是JSP中摇摆,不过偏向ASP一些,又不知道要用VBscript还是JAVAscript。本来是觉得JAVA还蛮有发展前景的,可是现在貌似有些原本打算用JAVA做的都重新评估合理性,想用其他的语言,那等我毕业的时候,JAVA程序员不是找不到工作?所以,很纠结啊。。。rn还请各位大神指导一下,十分感谢!
xml定义语言用哪种好?
xml定义语言用哪种好?rn在XMLSPY中有DTD, DCD, XML-Data, BizTalk Schema, W3C Schema五种,哪种是最新规范?
实验用哪种手机好
过一两天可以申请向公司去购一台手机,要求wm5.0ppc,320x240,做实验的,大家推荐下
ASP用哪种开发工具好?
如题,谢谢!
用哪种方法同步好?
我有一个队例,队例中存放着一些对像,有一些线程在队例获取该对例的中的对像,同时有一些线程在队例的尾部添加对像,各线程操作该对例时需要同步吧?rn采用哪种同步方式好啊,具体怎么实现啊,以前没做过,请教各位专家,谢谢!
用哪种语言开发数据库软件好?
本人使用vb.net 2008 开发了一些商务软件,如进销存等,c/s结构,用sql sever 2000作数据库,感觉到执行sql操作时速度很慢,不及vb6快,不论是读取数据还是写入数据。请问各位是用什么语言开发的,如果取用C++.net,C#.net 对执行sql操作速度如何?会不会比vb.net快?请各位分享一下使用心得。谢谢!
数据库设计工具用哪种好?
viso还是power designer还是用其他的?哪个更适合?为什么?谢谢!rn我原来的做法是在word中做表,实现以下信息,这样好查找rn表名 说明rn列名 数据类型(长度) 约束条件 说明
写界面程序用WinAPI好还是MFC好
我一直在学MFC,WinAPI我也有所了解,都说用MFC开发Windows界面程序方便,不过小弟看来一点也不方便,MFC生成的代码实在太庞大,调试起来非常费劲,而且还需要掌握相当多的MFC知识才不会在调试面前退却,相反,小弟觉得,虽然用WinAPI直接开发程序需要手动打的代码稍微多一点,但是脉路十分清晰,调试起来相当方便,而且不用花很长时间去学习像MFC那样庞大的东西rn这是小弟本人的意见,菜鸟一个,意见不同的话大家不要介意,我只是想征求大家的意见,学做界面到底是WinAPI方便还是MFC方便?另外,现在用MFC的多不多?好像都在用C#,Java之类的
VC多线程中控制界面控件的几种方法
[转]http://hi.baidu.com/magicyang87/blog/item/23bbf2fd72d6b81108244d73.html      为了保证界面的用户体验经常要把数据处理等放到子线程中进行,然后把结果更新到主界面,通常有这样几种方法。   1.启动线程时把控件关联变量的指针传参给线程函数,这种方法无疑是最简单的方法,但极容易造成访问异常,因为
DIV三栏布局哪种方式好?
rn方式一:rn```rn rn rn rn rn rn rn```rn方式二:rn```rn rn rn rn rn rn rn rn rn```rn以上两种方式,哪种方式更好?rn优缺点分别是什么?rnrnrn
哪种方式好,请大家帮我决策?
有个web服务程序,一个数据库,多个web客户端rn要求在客户端实时显示最新的数据(以数据窗口形式显示),页面不要刷新,客户端尽量少装插件。rnrn现有3种方案,但我不知道是哪一种好?rn1、applet+servlet,用http通讯。applet定时向servlet询问数据更新情况,如有更新,传递新数据然后更新显示。 定时器由客户端进行。rnrn2、applet+servlet,用socket通讯。servlet定时检查数据更新,如有更新,发送数据给applet。定时器由服务端进行。rnrn3、rmi,不是很熟,不知道客户端需要装哪些东西。rnrn考虑性能和稳定性,到底哪种方式好呢rnrnrnrn rn
多用户网络信息传输问题。哪种方式好?
各位兄弟,我在作一个工程。rn需要在Web环境中(就是IE)作一个即时通迅的东西。rn现在有二种方法拉,rn一种就是基于Http的作个定时器不停的刷服务器。rn另一种方法就是建一个Socket连接,这样就可以即时通信了。rn我的迷惑是:rn如果用第一种吧,服务器要不断的处理多个客户端的刷新(每一次都是TCP连接、同步数据、TCP拆除)人数多了肯定不行。rn哪果用Socket将客户端和服务器一直连着呢,就需要另写一个服务,每个客户端占用一个连接,每个连接一个线程的管理。开销也不小啊。rnrn我的问题是,哪种方式更好一些?或者你有更好的办法。rn必须要求能在IE中完成,客户端不能是浏览器。
MFC界面更新实现方法
MFC界面更新实现方法
MFC更新多个对象到界面
主程序包括UI,对象CMyCell,CBoxmanage,Cbox,CRobo.rnCMyCell包含两个重要成员变量CBoxmanage,CRoborn其中CBoxmanage保存一个CBoox指针列表.负责对CRobo进行读写,及更新多个CBox的状态到UIrnCRobot也要更新自身状态到UIrn我想知道的是怎么传递要更新的数据,rnrnCbox---->CBoxmanage---->UIrnrnCRobo--->CMyCell------->UIrnrnrnrn
登陆验证密码的两种方式,探讨下哪种好
现有两种方式:rn1,用户登录前,获取用户输入的密码,用DWR传给JAVA后台去加密,加密规则自定义,比如先加密,加六位随机数再加密,随机数session保存。然后提交到服务器,服务器中用输入用户名获取加密密码,密码加session中的随机数再加密,去比对判断是否输入密码错误rnrn2,注册用户时,数据库有一个字段存储的注册时生成的六位随机数,用户设置密码加随机数生成MD5密码串,存入密码字段rn登陆时提交的明文密码在后台 加上数据库存的该用户六位随机数加密 再与数据库中密码比对判断是否输入密码错误rnrn第一种是我的,第二种事我领导的想法 我的被推翻了rn但是想想总觉得我的方式应该没多大问题,只是后者应该用的比较多而已rnrn也希望有朋友能分享下自己的密码验证方式
两种方式哪种好?(关于网络数据传递)
第一种:使用winsock控件,服务器和客户端之间使用senddata和getdata等方式发送rn 和获取数据。rnrn第二种,服务器将数据存放在数据库,如SQLServer,客户端通过ADO对象体系,远程访问rn 数据库,用记录集对象将想要的数据取回来rnrn请问哪种方式好(从速度、稳定等方面)
使用URLRewriter.dll和UrlRewriter.cs哪种方式好
[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/35.gif][/img]
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法