MFC原创:三层架构02(人事管理系统)UI-02 .

来源:互联网 发布:代理商门店数据分析 编辑:程序博客网 时间:2024/06/03 20:02
可能一开始设计左窗口视图的时候就不大合理了。我以为重新切分窗口来变换左窗口就是比较简单的方式了,但暂时无法实现。主要卡在:切分窗口好像一般都在OnCreateClient进行,而其它类是调用不了这个函数的。写新的函数来切分窗口,又不知道CCreateContext* pContext 这个参数要怎么赋值。赋值后也还不知道能不能实现,因为我使用的是静态切分方式。
        时间有限,作业也快需要交了。所以就先按照那种 点击按钮 显示相关控件并隐藏相关控件 的做法。做法比较简单,代码又比较多,就不贴代码了。        
        本来UI-02是不大需要发的,但我想以后有时间的话可能要学下插件的应用,到时如果内容不多就编辑在这里就好。而且,右窗口的实现也是还没应用过的。我要查询的时候,右窗口是列出所有符合条件的结果。 

        通过点击左窗口的按钮,控制右窗口的控件,以为不难,没想到又被卡了好多时间。右窗口的构造函数是保护的,不能在左窗口定义与它相关的类。网上查用指针等各种各样的方式,都搞不定。后来有人提醒用友类的方式,我以为可以。但实验后发现,它们间的关系还是有很多很多要去理解,肯定不是创建个类对象就能进行操作的)。既然这样,就继续简化吧,把所有控件都放到左窗口就好了。
        1:在左窗口(IDD_LEFTFORM_ADD_VIEW)新画一个ListCtrl控件,记得View属性要改为Report;
             为CLeftFormAddView类重写OnInitialUpdate函数,【时间上:构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,然后才是视图的OnInitialUpDate(主要初始化视图中控件等。对各个变量进行初始化操作)】代码如下:
            
        2:CLeftFormAddView定义的变量有:(一开始应该把控件的关联变量都设置为CString,这样,就不用再设置一个文本变量来接收数
              字变量)(11-12,转换类型itoa函数要求接收变量是char*类型,使用ListCtrl插入新项的参数又要求是CString类型,转来转去很麻
              烦,索性从上往下把数字类型都改为CString。这时才体会到,软件开发,如果起先不先写好设计,一堆没想到的麻烦,)
             
            修改前                                                                                                 修改后(控件对应变量删除后重新添加)
        3:各控件的关系:       

                        
        4:点击各控件对应的函数,就不贴了,看起来也很乱。就贴下ListCtrl的代码:
            
        5:总体界面
            
        今天着手加入BLL层代码了,而UI层设计的文章还没写好,等晚上想来写的时候,发现,一切乱了,不知从何写起。。。
        小结:UI设计不是简单的事……
//后话:界面设计还有QT等工具

原创粉丝点击