- MFC 教程
- MFC - 主页
- MFC - 概述
- MFC - 环境设置
- MFC - VC++ 项目
- MFC - 入门
- MFC - Windows 基础
- MFC - 对话框
- MFC - Windows 资源
- MFC - 属性页
- MFC - Windows 布局
- MFC - 控件管理
- MFC - Windows 控件
- MFC - 消息和事件
- MFC - ActiveX 控件
- MFC - 文件系统
- MFC - 标准输入输出
- MFC - 文档视图
- MFC - 字符串
- MFC - C 数组
- MFC - 链表
- MFC - 数据库类
- MFC - 序列化
- MFC - 多线程
- MFC - Internet 编程
- MFC - GDI
- MFC - 库
- MFC 有用资源
- MFC - 快速指南
- MFC - 有用资源
- MFC - 讨论
MFC - 管理升降控件
步骤 1 − 添加控件变量 m_spinControl,用于设置自旋控件,如下快照所示。
步骤 2 − 添加用于编辑控件的控件变量 m_editControl。
步骤 3 − 为旋转按钮添加 UDN_DELTAPOS 事件的事件处理程序。
步骤 4 − 按以下代码更新 OnInitDialog()。
BOOL CMFCSpinButtonDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here m_spinControl.SetRange(0, 100); m_spinControl.SetPos(50); m_editControl.SetWindowText(L"50"); return TRUE; // return TRUE unless you set the focus to a control }
步骤 5 − 以下是自旋控件事件的实现。
void CMFCSpinButtonDlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); // TODO: Add your control notification handler code here // Declare a pointer to a CSpinButtonCtrl; CSpinButtonCtrl *Spinner; // Get a pointer to our spin button Spinner = reinterpret_cast<CSpinButtonCtrl *>(GetDlgItem(IDC_SPIN1)); // Found out if it is our spin button that sent the message // This conditional statement appears useless but so what? if (pNMHDR -> hwndFrom == Spinner -> m_hWnd) { // Get the current value of the spin button int CurPos = pNMUpDown→iPos; // Convert the value to a string CString str; str.Format(L"%d", CurPos); // Display the value into the accompanying edit box m_editControl.SetWindowText(str); } *pResult = 0; }
步骤 6 − 编译并执行以上代码时,您将看到以下输出。
mfc_windows_controls.htm
广告