无符号整形 发表于 2016-7-9 18:31:27

C++ 跨类跨成员函数访问问题

本帖最后由 无符号整形 于 2016-7-9 22:24 编辑

MFC,想弄1个下载回调,下载回调要控制进度条。
结构是下面这样的
Dlg类
->进度条变量
->消息函数
->继承另一个类(以public方式)


另一个类(要访问进度条变量的函数)
->下载回调,要访问进度条
->继承另一个类(以public方式)

注意:进度条变量只能在Dlg类的成员函数有效




我试了一下下面的做法(静态访问,根本不行 )
CMFCDlg cDlg;
cDlg.m_pro.SetPos(100);//这样完全不行
这样Dlg类的进度条变量完全失效

我就想到了goto语句,goto到消息响应函数(消息函数在Dlg类里面,因为是成员函数可以直接访问),可是也是不行啊!这是跨类跨成员函数跳跃啊!会有类似的提示:


谁有办法访问Dlg类的控制条啊!已经是public属性了!
还有就是继承也用不了啊!这个类已经继承了一个类了!谁帮帮我啊!
这个是工程


有回复奖励请不要灌水!灌水者扣双倍鱼币!

zzk176 发表于 2016-7-9 18:53:25

是不是缺少什么头文件, 我MFC学的很浅只是简单猜测

无符号整形 发表于 2016-7-9 19:06:53

zzk176 发表于 2016-7-9 18:53
是不是缺少什么头文件, 我MFC学的很浅只是简单猜测

不可能啊

zzk176 发表于 2016-7-9 19:52:41

无符号整形 发表于 2016-7-9 19:06
不可能啊

好吧, 你能把整个工程放出来吗, 一张图片貌似很难看出什么

无符号整形 发表于 2016-7-9 21:03:22

zzk176 发表于 2016-7-9 19:52
好吧, 你能把整个工程放出来吗, 一张图片貌似很难看出什么

加上了,你看看吧

2548827329 发表于 2016-7-9 21:56:13

本帖最后由 2548827329 于 2016-7-9 22:06 编辑


没看懂你的程序,但是加进度调你可以定义一个全局变量啊,
int g_nPos = 0;

Settimer(1000);
m_pro.SetRange(0, 100);
然后再你的下载类中进行g_nPos++;
在OnTimer中进行
m_pro.SetPos(g_nPos);

这样应该可以实现进度条的自动加载了吧


2548827329 发表于 2016-7-9 22:09:45

再顺便说一下,楼主的命名风格很不好,然后工程名最好用英文名

无符号整形 发表于 2016-7-9 22:24:11

2548827329 发表于 2016-7-9 21:56
没看懂你的程序,但是加进度调你可以定义一个全局变量啊,
int g_nPos = 0;



没法采纳啊,对不起啊,已经给你加分了

无符号整形 发表于 2016-7-10 13:54:02

2548827329 发表于 2016-7-9 22:09
再顺便说一下,楼主的命名风格很不好,然后工程名最好用英文名

谢谢你给我提供了使用定时器的思路!
页: [1]
查看完整版本: C++ 跨类跨成员函数访问问题