`
yanfaguanli
  • 浏览: 658111 次
文章分类
社区版块
存档分类
最新评论

MFC原创:三层架构02(人事管理系统)UI-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等工具

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics