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