MFC 基础控件用法总结

本文总结了MFC基础控件的使用方法,包括设置控件标题、启用禁用状态、显示隐藏、子窗体嵌套、列表框操作、单选按钮、组合框、复选框、编辑框限制、系统效果启用、错误处理等实用技巧。
摘要由CSDN通过智能技术生成
更多精彩内容,请见:http://www.16boke.com

by zxy,Java/C++编程交流群:168424095
用了一个月的MFC,用了很多控件的基本用法,总结一下吧。
1.设置控件的caption GetDlgItem(控件ID)->SetWindowText("字符串");
2.设置控件是否可用 GetDlgItem(控件ID)->EnableWindow(BOOL);
3.设置控件是否可见 GetDlgItem(控件ID)->ShowWindow(SH_SHOW); 或SH_HIDE
4.子窗体嵌套到父窗体上,首先设置子窗体Style为Child。
CRect rcClient;
GetClientRect(&rcClient);
CChildDlg *m_pCChildDlg);
m_pCChildDlg = new CChildDlg;
m_pChildDlg->Create(子窗体ID,this);
m_pChildDlg->MoveWindow(rcClient.left,100,300,300); //调整一个合适的位置
m_pChildDlg->ShowWindow(SH_SHOW);
5.子窗体关闭父窗体
GetParent()->SendMessage(WM_CLOSE);
6.列表框

初始化
CListCtrl m_ListDir;
OnInitDialog函数中
m_ListDir.InsertColumn(0,_T("列1"),LVIR_BOUNDS,200);
m_ListDir.InsertColumn(0,_T("列2"),LVIR_BOUNDS,200);

DWORD dwStyle = m_ListDir.GetExtendedStyle();
dwStyle |= LVS_EX_CHECKBOXES; //复选框
dwStyle |= LVS_EX_GRIDLINES;  //网格线
m_ListDir.SetExtendedStyle(dwStyle); //设置扩展风格

清空 m_ListDir.DeleteAllItems();
得到行数 m_ListDir.GetItemCount();
插入一行 m_ListDir.InsertItem(0,"aa");
         m_ListDir.SetItemText(0,1,"bb");

7.单选按钮
默认选中IDC_RADIO_1
CheckRadioButton(IDC_RADIO_1,IDC_RADIO_2,IDC_RADIO_1);
得到选中的单选按钮
GetCheckedRadioButton(IDC_RADIO_1,IDC_RADIO_2);

8.组合框
设置选中第1行
(CComboBox*)GetDlgItem(组合框ID)->SetCurSel(0);
当前选中的行
(CComboBox*)GetDlgItem(组合框ID)->GetCurSel();

9.复选框
CButton *pBtn = (CButton*)GetDlgItem(复选框ID);
pBtn->SetCheck(0); //0表示设置不选中
判断是否选中
if(BST_CHECKED == IsDlgButtonChecked(复选框ID){}else{}

10.编辑框
设置编辑框只能输入0-9之间数字,将编辑框的Number属性设置为True

11.开启系统效果
#if _MSC_VER >= 1400
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

12.fatal error C1083:无法打开包括文件:"afxcontrolbars.h":No such file or directory
解决方法:注释掉#include <afxcontrolbars.h>,加一行#define CWinAppEx CWinApp

13.DeleteFile 删除指定文件 成功返回非0值,失败返回0。

14.GetLastError 
返回值 2:系统找不到指定的文件
       32:进程无法访问文件,因为另一个程序正在使用此文件。

15.DrawText 居中 DT_SINGLELINE|DT_CENTER|DT_VCENTER

16.添加webbrowser控件
在对话框上空白处右键单击,"插入Active控件",里面找Microsoft Web Browser

17.UpdateData(TRUE) 默认 控件的值->变量
UpdateData(FALSE) 变量值->控件显示

更多精彩内容,请见:http://www.16boke.com
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值