MFC各个窗口间的控件调用

一个28岁零基础初中文化英盲的编程爱好者的编程学习记录!(2018.1.1开始学习编程)

编译器:VS2015        系统:64位 Windows 10

辅助工具:网易有道词典(用来在帮助文档里划词翻译)

有什么不对的地方欢迎指教,刚学编程不久,肯定有很多不足的地方,另外可以加我企鹅一起学习交流:643199001

正题:

有:主窗口A,子窗口B,子窗口D,D下子窗口E

每个窗口都有一个编辑框Edit控件:A1,B1,D1,E1 ,并各自添加contorl类型变量 editA_c ......

A.h 包含 B.h、D.h  并且在public:内声明类对象 B b;  D d;

////////////////////////////////
#pragma once
#include "B.h"
#include "D.h"
.
.
.
.
.
////////////////////////////////
public:
	B b;
	D d;
/////////////////////////////////

D.h 包含 E.h

public:

        E e;

主窗口A调用其他窗口方法:

直接用定义好的对象调用,如A.cpp内:

b.editB_c.SetWindowTextW(L"被A调用");

d.editD_c.SetWindowTextW(L"被A调用");

d.e.editE_c.SetWindowTextW(L"被A调用"); //通过d中转调用e

非主窗口调用其他窗口控件的方法:

子窗口 .cpp文件包含主窗口A .h头文件 或者父窗口.h文件

如,窗口B调用其他窗口控件

//Dlg *pAGMW = (CADlg*)AfxGetMainWnd(); //获取主窗口对象指针 

CADlg *pGP = (CADlg*)GetParent(); //获取父窗口对象指针

//以上用哪个都行,因为A是主窗口也是B的父窗口

pGP->editA_c.SetWindowTextW(L"被B窗口调用"); //调用主窗口控件

pGP->d.e.editA_c.SetWindowTextW(L"被B窗口调用"); //调用D窗口下的E窗口控件,主窗口指针指向d在调用e


//获取其他窗口的数据的本窗口也是一样,不过是需要定义一些变量来接收罢了!

//如A的编辑框内数据为“AAA”,则:

CSting str;

pGP->editA_c.GetWindowTextW(str);

editB_c.SetWindowTextW(str);

//结束



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页