[问题]关于GetDlgItem和控件变量 最近画界面,遇到一些问题。用GetDlgItem可以得到控件的指针,进而可以对其进行操作。为控件设置一个变量,也可以用这个变灵对控件进行操作。现在我的问题是,这两种方式有什么区别?哪种更好?或者说两种方法的优势和劣势各是什么?比较菜,希望听听高手们的意见,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetDlgItem 灵活为控件设置一个变量 方便 GetDlgItem就完全是用代码实现的为控件设置一个变量,传递value时只要一个UpdateData(TRUE/FALSE)就完成了 同意 he_zhidan(何志丹:风云伐日)的观点,使用GetDlgItem()比较灵活,为空间设置变量,虽然方便,但要多定义一个变量,但完成功能上是一样 GetDlgItem()得到一个CWnd*的指针,它在MFC中是一个临时指针,所以一般来说不可以对它进行保存,因为在空闲的线程时间中可以会把它删除掉,至少对SDI与MDI框架的程序来说是这样,在Dialog中也有可能为人用DeleteTempMap()来人为删除。但是当为一个变量存在类成员中框架就不会删除它,直到为这类对象释放。两者在效率上差不多。不过相对来说临时变量可能长一点。 GetDlgItem代码量太大,用变量方便, 但是使用变量关联时, 调用UpdateData有时会取不到控件的数据(不知为何?)使用GetDlgItem则从来不曾遇到这种情况 俺喜欢直接定义变量,习惯了······不过俺感觉GetDlgItem代码量也不大··· 我觉得用的地方多了就采用变量如果只用一两次就没有必要定义变量,直接用GetDlgItem 偶也喜欢定义变量,方便,不过得 UpdateData 这要看个人的爱好吧!呵呵,俺喜欢用GetDlgItem(),因为一看就让人明白! 定义变量有时有contrl和CString之分,不如用GetDlgItem灵活,几行代码的差别可以忽略了。 求教: 如何通过程序在WORD中画表格并填写(是哪个自动化类) WINDOWS 下 C++编程学习体会 Socket初学,帮看看下面代码错在哪里? 如何在view区的某一位置显示下一个文字信息时把上一次显示的文字信息消除?(请结合我正文中的原代码) 在vc版上散散分,顺便问个问题 关于按键的问题 ◎◎◎关于曲线的问题!◎◎◎ OnSysCommand的问题,高分! 菜鸟求助小问题! VC做数据库与Delphi做数据库那个much less 我现在什么状态啊??该如何努力啊??迷茫中* 100分求MSDN下载网址!
为控件设置一个变量 方便
不可以对它进行保存,因为在空闲的线程时间中可以会把它删除掉,至少对
SDI与MDI框架的程序来说是这样,在Dialog中也有可能为人用DeleteTempMap()来人为删除。
但是当为一个变量存在类成员中框架就不会删除它,直到为这类对象释放。两者在效率上差不多。不过相对来说临时变量可能长一点。
调用UpdateData有时会取不到控件的数据(不知为何?)
使用GetDlgItem则从来不曾遇到这种情况
不过俺感觉GetDlgItem代码量也不大···
呵呵,俺喜欢用GetDlgItem(),因为一看就让人明白!