最近画界面,遇到一些问题。用GetDlgItem可以得到控件的指针,进而可以对其进行操作。为控件设置一个变量,也可以用这个变灵对控件进行操作。现在我的问题是,这两种方式有什么区别?哪种更好?或者说两种方法的优势和劣势各是什么?比较菜,希望听听高手们的意见,谢谢。

解决方案 »

  1.   

    GetDlgItem 灵活
    为控件设置一个变量 方便
      

  2.   

    GetDlgItem就完全是用代码实现的为控件设置一个变量,传递value时只要一个UpdateData(TRUE/FALSE)就完成了
      

  3.   

    同意 he_zhidan(何志丹:风云伐日)的观点,使用GetDlgItem()比较灵活,为空间设置变量,虽然方便,但要多定义一个变量,但完成功能上是一样
      

  4.   

    GetDlgItem()得到一个CWnd*的指针,它在MFC中是一个临时指针,所以一般来说
    不可以对它进行保存,因为在空闲的线程时间中可以会把它删除掉,至少对
    SDI与MDI框架的程序来说是这样,在Dialog中也有可能为人用DeleteTempMap()来人为删除。
    但是当为一个变量存在类成员中框架就不会删除它,直到为这类对象释放。两者在效率上差不多。不过相对来说临时变量可能长一点。
      

  5.   

    GetDlgItem代码量太大,用变量方便,
      

  6.   

    但是使用变量关联时,
     调用UpdateData有时会取不到控件的数据(不知为何?)
    使用GetDlgItem则从来不曾遇到这种情况
      

  7.   

    俺喜欢直接定义变量,习惯了······
    不过俺感觉GetDlgItem代码量也不大···
      

  8.   

    我觉得用的地方多了就采用变量如果只用一两次就没有必要定义变量,直接用GetDlgItem
      

  9.   

    偶也喜欢定义变量,方便,不过得 UpdateData
      

  10.   

    这要看个人的爱好吧!
    呵呵,俺喜欢用GetDlgItem(),因为一看就让人明白!
      

  11.   

    定义变量有时有contrl和CString之分,不如用GetDlgItem灵活,几行代码的差别可以忽略了。