MFC 基础控件用法总结

更多精彩内容,请见: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

你可能感兴趣的:(MFC 基础控件用法总结)