全面移植到C++环境 初试MFC界面设计

2014年06月13日 3067点热度 0人点赞 0条评论

说明

此文不适于MFC初学者,尤其适合对MFC有一定基础和了解,面临开发环境从VC6迁移到VC2008的小菜鸟们。

做个界面,主要是Demo作用,因此不管多丑陋,只要比控制台直观就好。

界面格式如下: 整个程序基于对话框,对话框上有一个tabcontrol控件,该控件有两个tabpage,第一个tabpage用于显示查找的字典信息。(字典在数据库中),第二个tabpage用于演示分词算法。

全面移植到C++环境 初试MFC界面设计

问题

难点一:VS2008中如何使用tabcontrol控件?

此部分主要参照资料:http://hi.baidu.com/threeswords/blog/item/fcbffbee7f2229ded439c96c.html

以及http://blog.csdn.net/akof1314/archive/2009/10/30/4746928.aspx

主要的意思是:在每个TabPage上要放一个无边框,style为child型的子对话框。

我们首先要先在资源视图中新建对话框资源,并设计要放在每个TagPage上面子dialog的格式。

然后新建类。并在主对话框的头文件中加入新建对话框的头文件。

如下:

// WordSemanticToConceptDlg.h : header file
//

#pragma once
#include "afxcmn.h"
#include "TabPage1Dlg.h"
#include "TabPage2Dlg.h"

并为主对话框类

声明两个子对话框类型的成员变量:

 CTabPage1Dlg m_tabpage1;
 CTabPage2Dlg m_tabpage2;

难点二:如何给EditCtrl关联一个CString类的成员变量?

我们可以发现在VS2008中,控件右键-》添加变量,里面已经不再有CString的值类型。

我的解决方案如下 全面移植到C++环境 初试MFC界面设计

然后在控件所在的dlg的.h文件中将类型修改成CString,在控件所在的dlg的cpp文件中,将构造函数中此变量的初值由0改为“”,同时在cpp文件中的DoDataExchange函数中增加:

DDX_Text(pDX,IDC_EDIT1,m_editstring);

Sollyu

保持饥渴的专注,追求最佳的品质