如何将滑块连接到 MFC 中的变量
Posted
技术标签:
【中文标题】如何将滑块连接到 MFC 中的变量【英文标题】:How do I connect a slider to a variable in MFC 【发布时间】:2012-07-04 13:58:23 【问题描述】:将滑块连接到 MFC 中的成员变量的正确方法是什么?到目前为止我做了什么:
-
在资源视图中将滑块拖到我的对话框中并为其指定 ID
右键单击滑块并选择添加变量
将变量设置为 Control variable,将 Category 设置为 Value,同时设置 Min value 和 最大值到所需值。
这会在我的对话框类中创建一个 int
类型的成员变量,并在 DoDataExchange
方法中添加一些内容。
但是,DoDataExchange
方法仅在我的对话框创建时调用一次,当我拖动滑块时,我必须做什么才能使我的成员变量更新?我是否应该将 Category 设置为 Ctrl 并手动管理范围,并拦截 WM_HSCROLL
消息?
(顺便说一下,这是一个非模态对话框)
【问题讨论】:
【参考方案1】:调用 UpdateData 执行 DataExchange 传递 TRUE 以将数据保存并验证到您的变量,FALSE 以根据您的变量设置控制值,即。将数据传递到控件中。有关 UpdateData 的更多信息:
http://msdn.microsoft.com/en-us/library/t9fb9hww(v=vs.80).aspx
对于通用数据交换机制:
http://msdn.microsoft.com/en-us/library/xwz5tb1x(v=vs.80).aspx
【讨论】:
我应该从哪里调用UpdateData(TRUE),WM_HSCROLL消息回调? 如果您要拦截 WM_HSCROLL 以在滑块更改后立即获取值,那么我不会费心使用成员变量。只需直接从控件中获取值。成员变量通常仅在您在应用工作流程中具有不同的设置/更新点时使用(例如,打开表单/对话框然后应用/关闭)【参考方案2】:是的,您从控件的 WM_HSCROLL(或 WM_VSCROLL)的处理程序中调用 UpdateData(),如果它是一个垂直滑块)。见http://msdn.microsoft.com/en-us/library/ekx9yz55%28v=vs.80%29.aspx。
【讨论】:
以上是关于如何将滑块连接到 MFC 中的变量的主要内容,如果未能解决你的问题,请参考以下文章