VC++开发GIS系统(6)MFC TAB控件的使用
我之前的文章GIS开发系列文章《利用ADO技术实现SQL Server存储二进制数据》中我实现了ADO读取数据并且保存到数据库的功能,但是有朋友说进度有些快,还没弄明白ADO呢就二进制了,所以这个想写个示例具体介绍ADO的使用方法。
不过在写这个示例的过程中用到了MFC TAB控件,之前不怎么熟悉,这里记录一下。熟悉的朋友可以直接跳过本文了。
本文使用的是基于对话框的MFC程序写的,在本文的最后会给出所有的代码下载地址。
1. 添加TAB对话框
这一步跟其他控件的添加方法没有什么区别,选中TAB控件拖到指定位置即可;然后添加一个控制的变量,如:
CTabCtrl mTab;
2. 设置tab的选项卡
在OnInitDialog函数中添加tab的选项卡,示例代码如下:
mTab.InsertItem(0,_T("增")); mTab.InsertItem(1,_T("删")); mTab.InsertItem(2,_T("查")); mTab.InsertItem(3,_T("改"));
3. 画对话框
切换到资源管理器,分别画4个对应第2步中的对话框。为了美观可以将style设为Child, Border设为None。如图:
画完对话框后,记得为每个对话框新建一个类。
4. 添加对话框变量
在步骤1的代码下添加如下代码(示例),记得要添加步骤中生成的3个类的头文件。
CTabCtrl mTab; CTabDlgAdd mDlgAdd; CTabDlgMus mDlgMus; CTabDlgSEA mDlgSea; CTabDlgMod mDlgMod; //控制对话框显示的变量 int currentTab; CDialog *PDlg[4];
上面的代码中最后两个变量是用来控制对话的显示的,会在后面的代码中用到。
5. 创建对话框
在OnInitDialog中创建这4个对话框,代码如下
mDlgAdd.Create(IDD_DIALOG_ADD,GetDlgItem(IDC_TAB_ADO)); mDlgMus.Create(IDD_DIALOG_MUS,GetDlgItem(IDC_TAB_ADO)); mDlgSea.Create(IDD_DIALOG_SEA,GetDlgItem(IDC_TAB_ADO)); mDlgMod.Create(IDD_DIALOG_MOD,GetDlgItem(IDC_TAB_ADO));
并且这里要设置初始显示的对话框,只能显示一个,其他3个隐藏。代码如下:
PDlg[0] = &mDlgAdd; PDlg[1] = &mDlgMus; PDlg[2] = &mDlgSea; PDlg[3] = &mDlgMod; PDlg[0]->ShowWindow(SW_SHOW); PDlg[1]->ShowWindow(SW_HIDE); PDlg[2]->ShowWindow(SW_HIDE); PDlg[3]->ShowWindow(SW_HIDE); //设置默认tab mTab.SetCurSel(0); currentTab = 0;
6. TAB和对话框响应联动
响应TAB的TcnSelchanging命令,添加函数。如图:
在响应函数中添加下面的代码:
//把当前的页面隐藏起来 PDlg[currentTab]->ShowWindow(SW_HIDE); //得到新的页面索引 currentTab = mTab.GetCurSel(); //把新的页面显示出来 PDlg[currentTab]->ShowWindow(SW_SHOW); *pResult = 0;
7. 其他内容
其他的一个问题就是美化的事情,比如对话框能否完全显示,下面是一段示例代码,用来控制对话框的显示。
//设置显示范围 CRect rc; mTab.GetClientRect(rc); rc.top += 20; rc.bottom -= 0; rc.left += 0; rc.right -= 0; mDlgAdd.MoveWindow(&rc); mDlgMus.MoveWindow(&rc); mDlgSea.MoveWindow(&rc); mDlgMod.MoveWindow(&rc);
8. 本文示例代码
如有不理解的,可以下载本文的源代码,所用环境VS2010。
链接:http://pan.baidu.com/s/1pJqeOOV
密码:spcv
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。