搜索
bottom↓
回复: 22

VC主对话框怎么应用子对话框中的TeeChart控件?悬赏20元求救了.

[复制链接]

出20入34汤圆

发表于 2016-10-18 15:24:35 | 显示全部楼层 |阅读模式
本帖最后由 yjamdfhqjs 于 2016-10-18 18:25 编辑

最近在VC应用TEECHART中遇到一个问题,Teechart图表我是用TAB控件设在一个子对话框中的,现在需要在主对话框中进行初始化控制
现在遇到的情况是:
1,Teechart的图表初始化函数如果话在放在子对话框的初始化函数的话可以正常的对图表进行初始化操作。
        初始化方式如下:
        BOOL CLineGraph::OnInitDialog()
        {
                CDialogEx::OnInitDialog();
                m_screenWidth  = GetSystemMetrics(SM_CXFULLSCREEN);
                m_screenHeight = GetSystemMetrics(SM_CYFULLSCREEN);
                InitChart1(0);
                InitChart2(0);
                return TRUE;
        }
2,在其他的子对话框里面通过指针也可以对TeeChart图表进行初始化操作,方法是这样的
        CLineGraph *pDlg = (CLineGraph *)GetParent();//获取子对话框的类指针
        pDlg->Initchart2(0);//初始化子对话框的Teechart图表
3,在主对话框通过通过定义类变量来初始化子对话框中的Teechart图表就出问题了,初始化的方式为
        CLineGraph pDlg;
        pDlg.InitChart2(0);
       
        这样就会出问题,跟踪了一下,在初始化函数的前面部分还没有问题,但是到了用CSeries类定义一下变量时就会发生错误
        那个地方的代码为:
        CSeries lineseries = (CSeries)m_chart2.Series(0);
如果没有CSeries相关的类变量操作的话,就不会发生错误,大家知道这是什么原因吗?

希望大家帮忙一下哦 我都卡了好几天了。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出20入34汤圆

 楼主| 发表于 2016-10-18 15:25:20 | 显示全部楼层
顺便吐槽一下,公司的电脑都被加密了,不能复制,这些代码我得一个一个敲上来。

出0入0汤圆

发表于 2016-10-18 15:37:41 | 显示全部楼层
Teechart如果放在子对话框,应该在子对话框中的初始函数中进行初始化
主对话框初始化的时候,子对话框应该还没有创建,所以获取不到子对话框的Teechart
个人的一点理解,不一定正确
你可以试试用try catch捕捉一下错误分析下看看
ps:我很水的~

出20入34汤圆

 楼主| 发表于 2016-10-18 15:39:42 | 显示全部楼层
337zhang 发表于 2016-10-18 15:37
Teechart如果放在子对话框,应该在子对话框中的初始函数中进行初始化
主对话框初始化的时候,子对话框应该 ...

try catch应该是C#的语句吧   最近也在学C#

出0入0汤圆

发表于 2016-10-18 15:40:44 | 显示全部楼层
yjamdfhqjs 发表于 2016-10-18 15:39
try catch应该是C#的语句吧   最近也在学C#

C++可以的,我用过~

出20入34汤圆

 楼主| 发表于 2016-10-18 15:43:59 | 显示全部楼层
337zhang 发表于 2016-10-18 15:40
C++可以的,我用过~

Bing了一下 还真是 学到了

出20入34汤圆

 楼主| 发表于 2016-10-18 16:49:36 | 显示全部楼层
顶一下,让大家都可以看到

出20入34汤圆

 楼主| 发表于 2016-10-18 18:25:35 | 显示全部楼层
大家帮忙看看哦

出0入0汤圆

发表于 2016-10-18 19:08:54 来自手机 | 显示全部楼层
楼主,你好,我在用teechart的时候刷新的速度跟不上,有什么方法可以解决么?

出20入34汤圆

 楼主| 发表于 2016-10-18 19:20:48 | 显示全部楼层
湛无双 发表于 2016-10-18 19:08
楼主,你好,我在用teechart的时候刷新的速度跟不上,有什么方法可以解决么? ...

我没有遇到  你的刷新速度是多快

出0入0汤圆

发表于 2016-10-19 08:31:31 | 显示全部楼层
楼主试下在创建子对话框的时候保存子对话框的指针,然后用指针操作。

出0入0汤圆

发表于 2016-10-19 12:04:37 | 显示全部楼层
yjamdfhqjs 发表于 2016-10-18 19:20
我没有遇到  你的刷新速度是多快

我刷新速度在20帧,不过这个帧数跳动比较大

出0入0汤圆

发表于 2016-10-19 12:46:44 | 显示全部楼层
和可能是你的对话框窗口还没创建完成呢!你就调用 pDlg.InitChart2(0); 导致的。
猜测你用的是非模块模态对话框,可能需要这样处理
   CLineGraph pDlg;
   pDlg.Create(CLineGraph ::IDD);
   pDlg.ShowWindow(SW_SHOWNORMAL);
   pDlg.InitChart2(0);

出20入34汤圆

 楼主| 发表于 2016-10-19 13:00:29 | 显示全部楼层
qidaimengxing 发表于 2016-10-19 12:46
和可能是你的对话框窗口还没创建完成呢!你就调用 pDlg.InitChart2(0); 导致的。
猜测你用的是非模块模态对 ...

OK晚上回去试一下

出0入0汤圆

发表于 2016-10-19 13:35:17 | 显示全部楼层
场景是不是这样,有一个主对话框MainDlg,里面设置了一个TabCtrl,然后用TabCtrl控件里面关联了子对话框ChildDlg1,ChildDlg2...,那么初始化TeeChart应该在ChildDlg的OnInitDialog()函数里完成,因为主对话框初始化的时候子对话框还没有创建。

出20入34汤圆

 楼主| 发表于 2016-10-19 14:02:53 | 显示全部楼层
zhaomzs 发表于 2016-10-19 13:35
场景是不是这样,有一个主对话框MainDlg,里面设置了一个TabCtrl,然后用TabCtrl控件里面关联了子对话框Chi ...

恩 你说的场景是那样的 如果一定要应用呢 应该怎么做

出0入0汤圆

发表于 2016-10-19 15:18:05 | 显示全部楼层
yjamdfhqjs 发表于 2016-10-19 14:02
恩 你说的场景是那样的 如果一定要应用呢 应该怎么做

不要在主对话框的初始化函数里面做,在show里面就可以了,show的时候,所有的都创建了

出20入34汤圆

 楼主| 发表于 2016-10-19 20:33:03 | 显示全部楼层
qidaimengxing 发表于 2016-10-19 12:46
和可能是你的对话框窗口还没创建完成呢!你就调用 pDlg.InitChart2(0); 导致的。
猜测你用的是非模块模态对 ...

你好  在吗 在我主对话框里面调用子对话框的函数时没有发生错误了 但是这个InitChart2没有发生作用呢?
首先我把InitChart2(0);这个初始化函数放到子对话框的InitDialog函数中就可以正常的发生作用,但是我如果
把这个初始化函数放到主对话框的那个函数里面就没有作用了   是怎么回事呢

出300入477汤圆

发表于 2016-10-20 10:23:44 来自手机 | 显示全部楼层
yjamdfhqjs 发表于 2016-10-19 20:33
你好  在吗 在我主对话框里面调用子对话框的函数时没有发生错误了 但是这个InitChart2没有发生作用呢?
...

说了多少遍赶紧放弃mfc你不听,有你跟mfc库折腾的这点时间,拿bcb或.net早就写完了。
bcb里面你在构造函数里面做什么都合法。构造函数里面明明还没有窗口,你去取自己的hwnd照样会正常,因为系统库替你做了很多!而古老的mfc根本没考虑这些,名曰两阶段构造。在没真正构造完成之前想用,就等着去哭吧…

出20入34汤圆

 楼主| 发表于 2016-10-20 10:30:03 | 显示全部楼层
redroof 发表于 2016-10-20 10:23
说了多少遍赶紧放弃mfc你不听,有你跟mfc库折腾的这点时间,拿bcb或.net早就写完了。
bcb里面你在构造函 ...

呵呵 C#我也在学的 但是这个程序不是由我一个人来做呢 后面还有神经网络的算法、联网、加密的要求得由别人来做了

出300入477汤圆

发表于 2016-10-20 12:36:47 来自手机 | 显示全部楼层
yjamdfhqjs 发表于 2016-10-20 10:30
呵呵 C#我也在学的 但是这个程序不是由我一个人来做呢 后面还有神经网络的算法、联网、加密的要求得由别 ...

别的算法只能用vc吗?那就把算法变成dll,给做界面的程序调用即可。
VC写没界面的程序还是很好用的

出300入477汤圆

发表于 2016-10-20 12:38:52 来自手机 | 显示全部楼层
本帖最后由 redroof 于 2016-10-20 12:40 编辑

看起来你没有多少选择。
界面部分赶紧躲开mfc吧!算法部分vc的优化还是不错的

出0入0汤圆

发表于 2016-10-25 07:40:09 来自手机 | 显示全部楼层
主对话框新建一个数据结构体存放初始化数据,在子对话框中建对应的待构,主对话框实例化子对话框时传入数据指针。子对话框要进行派生。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 06:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表