MFC中怎么用代码实现页面切换edit control保留值
时间: 2024-09-29 08:02:27 浏览: 23
MFC Tab Control切换
在Microsoft Foundation Classes (MFC) 中,如果你想要在页面切换时让 `Edit` 控制器(如 `CEdit` 或 `CStringCtrl`)保持其先前的值,你可以采取以下步骤:
1. **成员变量保存数据**:
首先,在包含编辑控件的类里,创建一个成员变量来存储编辑框的内容。例如,如果你有一个 `CEdit` 对象,可以这样做:
```cpp
protected:
CString m_previousValue;
```
2. **切换前保存当前值**:
在准备切换到新页面之前,记得保存当前编辑框的内容:
```cpp
void OnBeforeSwitchPage() {
if (m_editCtrl.GetSafeHwnd()) // 确保编辑控件有效
m_previousValue = m_editCtrl.GetText();
}
```
这个函数通常会关联到页面切换事件(比如 `OnPrepareDC` 或 `OnDraw`)。
3. **切换后恢复值**:
当返回到原来的页面时,设置编辑控件的文本为之前保存的数据:
```cpp
void OnAfterSwitchPage() {
if (m_editCtrl.GetSafeHwnd())
m_editCtrl.SetText(m_previousValue);
}
```
类似地,这也应该关联到适当的事件。
4. **确保处理所有情况**:
可能需要处理其他情况,比如编辑框是否已销毁等情况,确保在访问 `m_editCtrl` 时它仍然存在。
```cpp
void CYourClass::OnDraw(CDC* pDC) {
// ... 其他绘制代码
OnBeforeSwitchPage();
// 正常绘制代码...
OnAfterSwitchPage();
}
```
阅读全文