现在我需要设置一个Setting类 里面包含对于SettingDlg窗口的操作函数              static int GetTestInterval(); //用于得到窗口一个文本框的值        static CList<CString,CString&>* GetAddrList();//用于获取窗口中list control控件的列表 我对CList不熟悉 不懂呢 怎么存储?        static void SetTestInterval(int interval);//用来设置窗口中文本框的值        static void Save();//保存配置文件        static bool Open(const TCHAR* fileName );//打开配置文件并放到窗口上复制代码现在我来负责实现这个类,但是第一个问题,我需要在我的类中如何来操作SettingDlg对象呢?比如static int GetTestInterval(); 这个,最简单的,谁能给个示例呢?
我目前想的方法是增加一个构造函数,传递一个CWnd* m_pParent进来,也就是说这个类也要增加这个CWnd* m_pParent成员,有了句柄才能对那个窗口进行操作,那这样的话在SettingDlg中使用Setting类时必须先有一个Setting对象了,也就是不能直接用静态方法了,我不知道这样设计好不好,但是感觉耦合性低,抽象层次不高,不知道大家的经验来说是如何处理,如何设计的呢?还请指点一下 怎样做比较好或者不好?

解决方案 »

  1.   

    可能我的表述有错,静态不是头儿要求的 是我加上的 --# Setting   是用来获取SettingDlg上的控件中的数据的 Save是保存控件中的数据到一个文件 Open是把文件读出返回到控件上 GetAddrList的返回值是SettingDlg上的list control控件的值,估计是给别的函数用的,SetTestInterval用来设置SettingDlg上一个Edit控件的值 int GetTestInterval(); 是用来得到SettingDlg上一个Edit控件的值  SettingDlg.cpp不用我写 我只要写 Setting  我现在完全没招了
      

  2.   

    需求我都搞错了 哎 完全没经验 >_<有没有人要分啊 过来坐一下就行
      

  3.   

    up tks不过你的类我想讨论
      

  4.   

    我觉得你在思考设计的角度来说,你先考虑了实现问题,才考虑怎么用类,无论你对需求的理解是什么样的这样去思考设计总是不对的我目前想的方法是增加一个构造函数,传递一个CWnd* m_pParent进来,也就是说这个类也要增加这个CWnd* m_pParent成员,有了句柄才能对那个窗口进行操作,那这样的话在SettingDlg中使用Setting类时必须先有一个Setting对象了,也就是不能直接用静态方法了具体要不要用静态方法,以及为什么要用,是抽象出来以后的结果,之所以原先用静态的方法,我想可能是因为,这个类没有继承,只是方法的集合体,应该是整体架构的最低层,也就是基础
      

  5.   

    果然厉害 受教了^_^   俺是初学者,愚笨的地方还请见谅咯传递CWnd* m_pParent偶第一次就试过了 不过有的地方实现有难度 有问题你先考虑了实现问题,才考虑怎么用类 你说的太对了 我的脑筋一时转不过来
    又和头儿交流了一下 他大概也是你这个意思 其实是我把问题弄复杂了 他只是让我做简单一些的事情不用静态的 而且应该有成员变量 头儿的想法是通过这个类来在程序中存储数据 然后调用方法来使用或者保存  我现在大概知道了save和open怎么写  
    我现在先增加了两个成员 分别是int m_nInterval    ,CList<CString,CString&> m_tAddrListsave是写这两个变量的数据进文件 open是读文件数据进这两个变量 这样就抽象出来了我用你的方法思考了一下 --#  结果及其惊人 ````表笑偶偶现在绝对头儿让偶写的是属性!  我在学校学的是c#  我觉得就是类似C#中的属性器 get set 再看看名字 确实感觉是这个意思 顿悟 >_<  我原先想得太复杂了 根本就不用考虑SettingDlg 天呐 是设计思路问题 吐血啊 不过现在还有个疑问有 CList <CString,CString&>* GetAddrList();   那为何没有SetAddrList方法呢?这边还稍微有点不通  >_< 太惊人了```
      

  6.   

    不过现在还有个疑问有 CList <CString,CString&>* GetAddrList();  那为何没有SetAddrList方法呢?这边还稍微有点不通  >_ < 太惊人了```因为返回的是一个对象,所以不需要setaddlist,直接对对象操作就好了对象.方法...这样这个对象本身也就变化了,不知道我这么说你理解了么...感觉你的瓶颈是在设计模式的思路上,你看看设计模式吧....这些对语言都是相通的
      

  7.   

    对象偶可以理解!  ^_^  哈哈  是啊 返回的是对象指针 直接就能操作了 T_T  天 你跟头儿真像  泪奔 结果出来了!  我马上实现它  竟然用了三天时间来考虑   >_<偶会去看看设计模式的思路的咯MVP果然厉害 深入浅出就把问题的根挖出来了^_^
      

  8.   

    http://topic.csdn.net/u/20091112/12/33f29256-ef6b-4fc2-8a3a-4518229aa523.html
      

  9.   

    再追问一下,那个save方法没有文件名 咋办?
      

  10.   


    我把CFile IniFile对象放到全局就可以了 -_-    真是晕了