问题描述
- 小弟请教在MFC中子窗口如何获取父窗口的句柄啊
-
比如我有个父类的Dialog类为A,还有一个子类的Dialog类为B,然后在A类的头文件中包含了B的头文件,然后在A类中生命一个B类的成员变量,类似下面那样,然后我通过一个button调用DoModal();B类的STYLE改为CHILD了;
然后我希望在子窗口中处理一些数据,然后传给父窗口;比如A中有个IDC_text1
有个IDD_BUTTON1,B中有个IDC_text2,有个IDD_BUTTON2;
我就希望在B中的IDC_text2中输入一个数字,点击DD_BUTTON2,然后关闭B对象的对话框,在A对象的对话框中点击IDD_BUTTON1,然后IDC_text1中显示这个数,如何操作啊,初学者求指教,我查了说是可以通过获取父窗口的句柄操作,但是具体该怎么弄呢?class B
{
public:
B();
...
~B();};
class A
{
public:
A();
...
~A();
B bb;};
解决方案
1.创建B对话框的时候可以将A的HWND窗口句柄传递过去,当然需要修改B类的构造函数。
2.B类中定义一个CString/int/DWORD类型的成员用来保存你IDC_TEXT2的数据。
解决方案二:
这根本用不到父窗口指针。你把IDC_TEXT2绑定一个字符串成员变量,然后在响应IDD_BUTTON1的事件处理中,可以直接访问B类型的成员变量来得到这个字符串变量
解决方案三:
这根本用不到父窗口指针。你把IDC_TEXT2绑定一个字符串成员变量,然后在响应IDD_BUTTON1的事件处理中,可以直接访问B类型的成员变量来得到这个字符串变量
解决方案四:
GetParent()获取父窗口
或者B的构造函数中直接把父窗口作为参数传递进去
获取父窗口后,俄可以用GetDlgItem唉获取父窗口控件等操作
时间: 2024-10-30 03:22:17