您的位置:首页 > 产品设计 > UI/UE

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

2013-04-16 19:40 239 查看
可能一开始设计左窗口视图的时候就不大合理了。我以为重新切分窗口来变换左窗口就是比较简单的方式了,但暂时无法实现。主要卡在:切分窗口好像一般都在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等工具
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: