社区
界面
帖子详情
两个窗口间怎么传递数据?
ecjtuboy
2006-06-16 10:21:00
在窗口A上单击了按钮 进入窗口B
在窗口B上得文本框输入数据,如何把数据传给窗口A里面得变量?
...全文
445
17
打赏
收藏
两个窗口间怎么传递数据?
在窗口A上单击了按钮 进入窗口B 在窗口B上得文本框输入数据,如何把数据传给窗口A里面得变量?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Scarroot
2006-06-28
打赏
举报
回复
mark
zhh007
2006-06-17
打赏
举报
回复
mark!
yuyuan830705
2006-06-16
打赏
举报
回复
-.-#哦。我好人做到底吧。我作了一个简单程序。已经完全实现了。先做两个个修正:
1.不用虚声明ClassB。在ClassA的cpp文件里是可以include ClassB.h 的滴。
2.m_Parent 成员变成public属性
然后:
m_Parent 是在B中申明的 A怎么传递指针给他啊:
回答:
CClassA::OnButton1(){
:
if ( NULL == m_Child)
{
m_Child = new CClassB;
}
m_Child->m_Parent = this;
m_Child->DoModal();
:
}
m_Child->GetInputString()获得B的全局变量,怎么个获得法啊?
回答:GetInputString()定义为ClassB的public函数,作用就是获得一个全部变量。
(1)ClassA.h
#define WM_MYMSG (WM_USER + 0x2000)
(2)ClassA.cpp
BEGIN_MESSAGE_MAP(CInterWideProjDlg, CDialog)
ON_MESSAGE(WM_MYMSG, OnMyMessage)
END_MESSAGE_MAP()
:
CClassA::OnMyMessage( WPARAM wParam, LPARAM lParam)
{
m_Child->GetInputString();
}
(3)ClassB.cpp
CClassB::GetInputString()
{
return m_csString;
}
:
CClassB::OnButton1()
{ // 假定在B的BTN1按钮按下时让A获得csString的值
m_Parent->SendMessage( WM_MYMSG, 0, 0);
}
ecjtuboy
2006-06-16
打赏
举报
回复
以上申明编译通过
m_Parent 是在B中申明的 A怎么传递指针给他啊
m_Child->GetInputString()获得B的全局变量,怎么个获得法啊?
yuyuan830705
2006-06-16
打赏
举报
回复
不对不对。这样:
A的头文件里:
class DlgB;
class DlgA:public CDialog
{
private:
DlgB *m_child;
}
还有:类最好用C开头~~~
ecjtuboy
2006-06-16
打赏
举报
回复
照你纠正的方法 也不行啊
我的窗口A是 创建工程的窗口 有关系么?
ecjtuboy
2006-06-16
打赏
举报
回复
A的头文件里:
#include "DlgB.h"
class DlgA:public CDialog
{
private:
DlgB *m_child;
}
……
B的头文件里:
#include "DlgA.h"
class DlgB:public CDialog
{
public:
DlgA *m_parent;
}
编译:……missing ';' before '*'
DlgA :missing storage-class or type specifiers
……
yuyuan830705
2006-06-16
打赏
举报
回复
sorry。用一点纠正。我编译后,可以,但是要纠正一下:
在B的头文件里面。#include "ClassA.h"。然后,在ClassA的头文件里面。声明一个空的B类。就是一个B的虚申明(名称不知道对不对)
↓
在A的头文件里面。#include "ClassB.h"。然后,在ClassB的头文件里面。声明一个空的A类。就是一个A的虚申明(名称不知道对不对)
因为A要用B的public函数。所以我说反了。
yuyuan830705
2006-06-16
打赏
举报
回复
在B的头文件里面。#include "ClassA.h"。然后,在ClassA的头文件里面。声明一个空的B类。就是一个B的虚申明(名称不知道对不对)
ecjtuboy
2006-06-16
打赏
举报
回复
aa3000(杀手K) ( ) ,B由A创建是什么意思啊?
我的窗口A是创建工程的窗口 B是新引入的窗口,他们分别有自己的cpp文件 A怎么获得B成员啊?
yuyuan830705() ( ) 信誉:100
classB
{
:
public:
ClassA* m_Parent;
:
}
定义通过不了编译 ClassA 不能识别
yuyuan830705
2006-06-16
打赏
举报
回复
这个最好用消息来做。比如:
m_Parent->SendMessage(WM_XXX, 0, 0);
1.其中m_Parent是A的句柄,可以在“在窗口A上单击了按钮”把指针传给B,具体些就是:
classB
{
:
public:
ClassA* m_Parent;
:
}
2.WM_XXX是定义在A类里面的消息,功能比如就是调用m_Child->GetInputString()获得B的全局变量。这关系到A类里面也的有B的指针,在B画面显示时候可以获得。比如:
classA
{
:
private:
ClassB* m_Child;
:
}
3.后两个参数无所谓啦。当然如果用得好的话可以写的更加漂亮。
dic_walter
2006-06-16
打赏
举报
回复
哦,理解错了,呵呵。不好意思,用SendMessage()即可完成
dic_walter
2006-06-16
打赏
举报
回复
在A中先给对象B的str赋值,然后再打开B
aa3000
2006-06-16
打赏
举报
回复
如果B由A创建,B在关闭前把数据保存在一个成员变量里,关闭后A获取B的那个成员变量
ecjtuboy
2006-06-16
打赏
举报
回复
问题得到解决
非常感谢 偶是新手 以后请多多关照
ecjtuboy
2006-06-16
打赏
举报
回复
非常感激你的帮忙
再厚着脸皮问下 ^_^
classB不在 A的头文件里虚申明 编译会出错啊 即便在cpp文件里#include classB
city_freeman
2006-06-16
打赏
举报
回复
发消息 使A更新
Python数据分析与挖掘
92讲视频课+16大项目实战+课件... 五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例
两个
角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
VB如何在
窗口
之
间
传递数据
?
有多种方法可以在
窗口
之
间
传递数据
,比如: 1、在模块文件(Module)中声明一个全局公共变量,...2、在要
传递数据
的那个
窗口
声明一个模块级的全局变量,然后在其他窗体中就可以通过这个变量(要加上窗体名的引用)...
C#中
两个
窗体
间
的数据传递
分别在
两个
窗体中创建公有属性的设置字段,分别供
两个
窗口
调用。 两种情况的区别: 一:在父窗体向子窗体
传递数据
时,由于在父
窗口
中已经实例化出子
窗口
对象,可以直接调用子
窗口
的设置字段程序。 代码示例: Step ...
js-如何在
两个
页面之
间
互相
传递数据
?
页面之
间
传递数据
我们常用到的两种方式: 把要传递的数据作为字符串拼接到要跳转的url后面,另一个页面直接读取本页面的url 这是封装好的
两个
函数,直接拿来调用就可以//把参数拼接到url后面 function grow(obj,url)...
Qt5学习笔记:Qt
两个
窗口
(Widget)
间
传递数据
Qt
两个
窗口
(Widget)
间
传递数据
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章