小弟请教在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;

};

4个回答

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唉获取父窗口控件等操作

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐