最近编写了一个小工具,实现文件的合并与拆分,依然是使用的MFC,在编写工具过程中,基本把涉及到的
文件的读写
都过了一遍,同时涉及到MFC中
“Tab Contorl”
,
“Combo Box”
,
“List Box”
以及
"Check Box"
的使用,对于一些常见的问题解决方法在这里做一个小小的总结。
Part 1:MFC控件
Tab Contorl 选项卡
效果如下图
将一个tab contorl拖到Dlg中,给它起个名字,就叫“TAB_CONTORL1”
在dlg.h文件中新建一个变量
CTabCtrl * m_mergesplit;
在dlg.cpp中进行赋值:
m_mergesplit = (CTabCtrl *)GetDlgItem(TAB_CONTORL1);
接下来就是对Tab Contorl的操作了:
m_mergesplit->InsertItem(0,"合并文件");
m_mergesplit->InsertItem(1,"拆分文件");
//将2个定义好的子Dlg添加到客户区中(m_merge和m_split 是2个dlg)
m_merge.Create(MERGE,GetDlgItem(IDC_TAB1));
m_split.Create(SPLIT,GetDlgItem(IDC_TAB1));
//获得TAB_CONTORL1客户区大小
CRect rc;
m_mergesplit->GetClientRect(&rc);
//调整子Dlg在父窗口中的位置
rc.top += 30;rc.bottom -= 8;
rc.left += 8;rc.right -= 8;
//设置子对话框尺寸并移动到指定位置
m_merge.MoveWindow(&rc);
m_split.MoveWindow(&rc);
//分别设置隐藏和显示,(设置显示 m_merge 子对话框)
m_merge.ShowWindow(true);
m_split.ShowWindow(false);
//设置默认的选项卡,(设置选项卡也是显示第一个)
m_mergesplit->SetCurSel(0);
Combo Box 下拉框
效果如下图:
这也是MFC中常用的一个控件,主要就是添加内容与读取内容
在.h文件中定义:
CComboBox * m_mycombo;
在.cpp文件中:
添加内容
//变量连接到对应的控件
m_mycombo= (CComboBox*)GetDlgItem(MYCOMBO);
//设置显示的项目条数
m_mycombo->SetCurSel(2);
//添加项目
m_mycombo->AddString("64");
m_mycombo->AddString("128");
读取内容
//变量连接到对应的控件
CString msg;
//获取到的内容是CString类型的
m_mycombo= (CComboBox *)GetDlgItem(MYCOMBO);
m_mycombo= (CComboBox *)GetDlgItem(MYCOMBO);
m_mycombo->GetWindowText(msg);
List Box 列表框
主要用于显示多条记录,例如数据库结果等
在.h文件中定义:
CListBox * m_mylist;
数据插入
//变量连接到对应控件
m_mylist= (CListBox *)GetDlgItem(MYLIST);
CString msg;
//添加到列表中
m_mylist->AddString(msg);
数据删除
//变量连接到对应控件
m_mylist = (CListBox *)GetDlgItem(MYLIST);
//获取当前选中的项目的下标
int index = m_mylist->GetCurSel();
//删除该条目
m_mylist->DeleteString(index);
Check Box 复选框
复选框比较简单,就是选中与非选中
在.h文件中定义:
CButton * m_mycheckbox;
在.cpp文件中:
//将变量与控件绑定
m_mycheckbox= (CButton*)GetDlgItem(MYCHECKBOX);
//获取当前控件的状态
int state = m_mycheckbox->GetCheck();
if (state == 1)
//被选中
{
//相关操作
}
else //取消选中
{
//其他相关操作
}
对于文件读写及拼接,在下一篇中阐述。