MFC-三个基本控件、SliderControl、HotKey以及ListControl
来源:互联网 发布:linux 文件分割 编辑:程序博客网 时间:2024/06/10 01:13
1.MFC中三个基本的控件介绍
1.SliderControl
效果如下所示:
这个控件使用起来十分简单,选中这个控件,右键选择类向导,添加WM_HSCROL消息,代码如下:
void CSliderDemoDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){ // TODO: 在此添加消息处理程序代码和/或调用默认值 int nowPos = m_slider.GetPos(); CString strOut; strOut.Format(L"滑块控件的位置:%d", nowPos); m_pos.SetWindowTextW(strOut); CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);}
这个控件主要用于一些参数的设置,比如音量大小的调节等场合。
2. HotKeyControl
演示效果如下:
右键hotkeyControl控件,类向导添加WM_HOTKEY消息,添加代码如下:
void CHotKeyDemoDlg::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2){ // TODO: 在此添加消息处理程序代码和/或调用默认值 if (nHotKeyId == 1) { ShowWindow(SW_SHOW); UnregisterHotKey(m_hWnd, 1); } CDialogEx::OnHotKey(nHotKeyId, nKey1, nKey2);}
还有一个设置按钮代码的添加:
void CHotKeyDemoDlg::OnBnClickedBtnSet(){ // TODO: 在此添加控件通知处理程序代码 WORD wVk, wMod; m_hotKey.GetHotKey(wVk, wMod); if (RegisterHotKey(m_hWnd, 1, wMod, wVk)) { ShowWindow(SW_HIDE); } else { MessageBox(L"注册热键失败!"); }}
3. ListControl
效果图如下:
直接上代码吧
在初始化对话框函数中需要注意的是,m_imageList变量需要在.h文件中声明:CImageList m_imageList;
BOOL CListCtrlDemoDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 m_list.InsertColumn(0, L"第一列", LVCFMT_LEFT, 200); m_list.InsertColumn(1, L"第二列", LVCFMT_LEFT, 200); m_imageList.Create(32, 32, ILC_COLOR32, 1, 1); m_imageList.Add(m_hIcon); m_list.SetImageList(&m_imageList, LVSIL_SMALL); m_list.SetImageList(&m_imageList, LVSIL_NORMAL); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}
void CListCtrlDemoDlg::OnBnClickedBtnAdd(){ // TODO: 在此添加控件通知处理程序代码 int nCount = m_list.GetItemCount(); int nTemp = 1; CString strBuffer; strBuffer.Format(L"第 %d 行的第 %d 列", nCount + 1, nTemp++); m_list.InsertItem(nCount, strBuffer, 0); strBuffer.Format(L"第 %d 行的 %d 列", nCount + 1, nTemp++); m_list.SetItemText(nCount, 1, strBuffer);}
void CListCtrlDemoDlg::OnBnClickedBtnDel(){ // TODO: 在此添加控件通知处理程序代码 int nCount = m_list.GetItemCount(); for (int i=nCount-1; i>=0; --i) { if (m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED) { m_list.DeleteItem(i); break; } }}
下面需要注意的是:
右击ComBoBoxComBoxControl控件,类向导,添加CBN_SELCHANGE消息,得到下面的函数,然后添加自己的代码
void CListCtrlDemoDlg::OnSelchangeComboType(){ // TODO: 在此添加控件通知处理程序代码 CComboBox *pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_TYPE); DWORD dwStyle = 0; switch (pComboBox->GetCurSel()) { case 0: // 大图标 dwStyle = LVS_ICON; break; case 1: // 小图标 dwStyle = LVS_SMALLICON; break; case 2: // 列表 dwStyle = LVS_LIST; break; case 3: // 详细信息 dwStyle = LVS_REPORT; break; default: break; } m_list.ModifyStyle(LVS_TYPEMASK, dwStyle);}
本文主要是想说明MFC的一些基本功能,没有做太多详细的说明,比如控件绑定的变量名等并没有做说明!如有错误,请批评指正!
1 0
- MFC-三个基本控件、SliderControl、HotKey以及ListControl
- VS2010/MFC编程初识一【ListControl列表视图控件和SliderControl滑块控件的 基本用法】
- MFC-三个基本控件EditControl、CheckBoxControl以及ComBoxControl
- MFC-三个基本控件ProgressControl、ScrollBarControl以及SpinControl
- MFC ListControl控件用法
- MFC ListControl控件用法
- MFC ListControl控件用法
- MFC ListControl控件用法
- MFC ListControl控件用法
- MFC列表控件(ListControl)
- MFC之ListControl控件
- MFC控件—ListControl
- MFC之listControl基本使用
- MFC ListControl控件的操作
- mfc listcontrol控件改变字体大小
- MFC控件 listcontrol 控件使用总结
- MFC控件 listcontrol 控件使用总结
- MFC中ListControl控件的使用
- 软件开发周期模型及其选择
- 如何脱颖而出?
- 浅谈基于GIS天地图进行商业市场分析及信息系统设计实现
- STM32CubeMX 3 解锁PWM模块
- 异步消息的性能与激情之Netty开发思路
- MFC-三个基本控件、SliderControl、HotKey以及ListControl
- seleniumWebDriver自动化测试框架_03TestNG和ApachePOIExcel文件数据驱动测试
- Qt5.7.0+cmake3.7.2+opencv2.4.13完美配置
- java OutputStream和InputStream Writer和Reader
- Vue2.0 父子组件之间通信
- codeforces
- CentOS yum 安装 Mysql5.7
- GPLT L2-002. 链表去重【链表】
- Hibernate的查询方式与策略