CString code = GetDlgItemInt(IDC_EDIT_SEARCHINFO); CCommoditytestDlg* pParentDlg1 = (CCommoditytestDlg*)GetParent(); // 调用父对话框的AddCommodity函数 pParentDlg1->GetIncomeCommodity(code);改怎么修改
时间: 2023-06-12 20:08:06 浏览: 44
如果您想修改这段代码,可能需要更多的上下文信息,因为这段代码只是一个片段,不足以理解它的完整功能。但是,我可以给出一些可能需要修改的建议。
首先,`GetDlgItemInt`函数返回一个整数值,因此您需要将其存储在一个整数类型的变量中,而不是一个CString类型的变量,例如:
```c++
int code = GetDlgItemInt(IDC_EDIT_SEARCHINFO);
```
其次,`GetParent`函数返回一个指向父窗口的指针,您需要将其转换为实际的父窗口类型,例如:
```c++
CCommoditytestDlg* pParentDlg1 = (CCommoditytestDlg*)GetParent();
```
最后,`GetIncomeCommodity`函数的参数类型可能需要更改为整数类型,以匹配您刚刚获取的代码值,例如:
```c++
pParentDlg1->GetIncomeCommodity(code);
```
请注意,这只是一些可能需要修改的建议,具体取决于您的代码实现和应用程序的上下文。
相关问题
mfc 子窗口IDC_EDIT 传值给父窗口IDC_EDIT
要将 MFC 子窗口 IDC_EDIT 的值传递给父窗口 IDC_EDIT,可以使用消息机制来实现。
首先,在子窗口的头文件中定义一个自定义的消息 ID,例如:
```
#define WM_UPDATE_PARENT_EDIT (WM_USER + 1)
```
然后,在子窗口的代码中,当 IDC_EDIT 的值发生变化时,发送一个自定义消息给父窗口:
```
// 获取子窗口 IDC_EDIT 的值
CString strValue;
GetDlgItemText(IDC_EDIT, strValue);
// 发送自定义消息给父窗口,同时传递子窗口 IDC_EDIT 的值
GetParent()->SendMessage(WM_UPDATE_PARENT_EDIT, 0, (LPARAM)&strValue);
```
接着,在父窗口的消息映射函数中处理该自定义消息,更新父窗口的 IDC_EDIT:
```
BEGIN_MESSAGE_MAP(CParentWnd, CWnd)
ON_MESSAGE(WM_UPDATE_PARENT_EDIT, OnUpdateParentEdit)
END_MESSAGE_MAP()
LRESULT CParentWnd::OnUpdateParentEdit(WPARAM wParam, LPARAM lParam)
{
// 获取子窗口 IDC_EDIT 的值
CString* pStrValue = reinterpret_cast<CString*>(lParam);
CString strValue = *pStrValue;
// 更新父窗口 IDC_EDIT 的值
SetDlgItemText(IDC_EDIT, strValue);
return 0;
}
```
这样,当子窗口 IDC_EDIT 的值发生变化时,父窗口的 IDC_EDIT 也会随之更新。注意在传递指针参数时要小心内存管理,确保指针有效性和生命周期。
解释以下代码:CWnd* pEditWnd = GetDlgItem(IDC_EDIT3); CWnd* pEditWnd1 = GetDlgItem(IDC_EDIT2); CString strValue; CString strValue1; strValue.Format(_T("%f"), *m); strValue1.Format(_T("%f"), *m1); pEditWnd->SetWindowText(strValue); pEditWnd1->SetWindowText(strValue1);
这段代码主要是将两个浮点型变量 m 和 m1 的值分别显示在对话框中的两个编辑框(ID 分别为 IDC_EDIT3 和 IDC_EDIT2)中。
具体的操作步骤如下:
1. 通过 GetDlgItem() 函数获取对话框中 IDC_EDIT3 和 IDC_EDIT2 两个编辑框的指针,分别赋值给 pEditWnd 和 pEditWnd1。
2. 使用 Format() 函数将浮点型变量 m 和 m1 的值格式化为字符串,分别存储在 strValue 和 strValue1 中。
3. 调用 CWnd 类的 SetWindowText() 函数,将 strValue 和 strValue1 中的字符串分别显示在 pEditWnd 和 pEditWnd1 对应的编辑框中。
其中,Format() 函数是 CString 类的成员函数,用于将数据格式化为字符串。具体的格式化方式可以参考 MFC 文档中的说明。SetWindowText() 函数是 CWnd 类的成员函数,用于设置控件的文本内容。