MFC 常用控件使用

最近编写了一个小工具,实现文件的合并与拆分,依然是使用的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 //取消选中
{
//其他相关操作
}
对于文件读写及拼接,在下一篇中阐述。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值