MFC-Spin数值调节控件
一般与编辑框组合使用
属性
1.
true:要改变的是数值类型
false:要改变的是非数值类型
2.
true:响应键盘上的箭头键
3.
值是否循环
4.
嵌入编辑框:Unattached 取消嵌入
left 左
right 右
myspin.SetRange32(0, 20); //调节的范围 /* myspin是控件变量 参数int类型 SetRange参数short类型 */ myspin.SetBase(10); //十进制 myspin.SetBuddy(GetDlgItem(IDC_EDIT1)); //设置关联的编辑框 /* CWnd* SetBuddy(CWnd* pWndBuddy); 返回值:先前伙伴窗口的指针 */ myspin.SetPos(10);//设置当前值 int n1 = myspin.GetPos(); //获取当前值 int n2 = myspin.GetRange();//获取最大值 int n3 = 100000; myspin.GetRange(n2, n3);//获取最小值和最大值
消息
UDN_DELTAPOS值即将更改时
void CMFCtestDlg::OnDeltaposSpin2(NMHDR* pNMHDR, LRESULT* pResult) /* 参数1:NMHDR结构指针 typedef struct tagNMHDR { HWND hwndFrom; //控件的句柄 UINT idFrom; //控件的ID号 UINT code; //通知代码,即消息类型(UDN_DELTAPOS) } NMHDR; */ { LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 HWND hwnd= ::GetDlgItem(m_hWnd, IDC_SPIN2); if ((pNMHDR->idFrom == IDC_SPIN2) && (pNMHDR->code == UDN_DELTAPOS) && (pNMHDR->hwndFrom == hwnd)) { AfxMessageBox(_T("消息成功")); } *pResult = 0; }
void CMFCtestDlg::OnDeltaposSpin2(NMHDR* pNMHDR, LRESULT* pResult) { LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); /* NM_UPDOWN结构: typedef struct _NM_UPDOWN { 2 NMHDR hdr; //NMHDR (包含参数1) 3 int iPos; //该控件当前值 4 int iDelta; //用该值确认是往上加(正直),还是往下减(负值)【变化值】 5 } NMUPDOWN, FAR *LPNMUPDOWN; */ // TODO: 在此添加控件通知处理程序代码 if (pNMUpDown->iDelta>0) { AfxMessageBox(_T("数值增加了")); } *pResult = 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2020-08-07 C++内联函数