mfc Edit control绑定了double类型变量怎么获取输入的值
时间: 2024-10-08 20:10:46 浏览: 38
mfc edit control
在MFC(Microsoft Foundation Classes)中,Edit控制(通常称为Edit Box)用于接收用户输入文本。如果想让它绑定到double类型的变量并获取输入的数值,你可以按照以下步骤操作:
1. **声明和初始化**: 首先,在C++类中声明一个double类型的变量,并设置初始值。
```cpp
double myDoubleValue = 0.0;
```
2. **创建Edit控件**: 在窗口类的成员变量中添加一个CEdit控件,假设名为m_editDouble,关联到窗口的某个位置。
```cpp
CEdit m_editDouble(pDX, IDC_EDIT_DOUBLE, &myDoubleValue);
```
在这里,`&myDoubleValue` 参数告诉MFC当用户输入改变时,应更新`myDoubleValue`。
3. **处理编辑事件**: 继承自CView或CFormView,并重写`OnChar()`或`OnKeyDown()`等函数,以便在用户按下回车键或其他特定字符时更新变量值。
```cpp
virtual void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) override {
// 检查是否按下了回车键
if (nChar == VK_RETURN) {
double value;
// 尝试从字符串转换成double
if (SUCCEEDED(::CDblConv::FromStr(value, m_editDouble.GetBuffer(256)))) {
myDoubleValue = value;
}
}
CView::OnChar(nChar, nRepCnt, nFlags);
}
```
4. **验证输入**: 输入可能包含非数字字符,所以需要检查转换是否成功。如果失败,可以提示用户输入无效。
注意:为了更好地实现数据验证,你还可以在属性页、对话框或者其他合适的地方提供清除按钮或格式化功能,避免直接从Edit控件读取可能的非法字符。
阅读全文