MFC对于OnDraw()函数调用顺序的问题

swfans 2010-09-08 07:57:34
我写了一个MFC的单文档框架的程序,要用框架打开DXF文件读取,读取后在单文档中进行显示。
我用一个模板类(template template< class BASE_CLASS, class TYPE >来存储了我读取的信息,然后想分块读出我的信息,在面板上绘图出来。
我自认为框架的运行循序应该是 :
(1)自动运行,显示出界面;
(2)在界面上打开文件,调用CXXXDoc类的OnOpenDocument()函数,打开文件;(3)读取文件信息,对信息分类保存到模板类;
(4)从模板类读出信息,显示,这时候应为窗口发生重绘,会再次调用OnDraw()函数;
(5)后面怎么做我也还没搞明白。

我现在有几个方面的不解,忘各位高手能帮小弟解答下:
一、 我在CXXXView类里面写了一个DrawAll()函数,用这个函数来绘制图形,然后再OnDraw()里面被调用,从而达到图形显示的目的。我在OnOpenDocument()和OnDraw()的函数开始处设置断点,调试运行,我的框架没显示就直接跳OnDraw(),因为DrawAll()里面对有对模板类链表的操作,而第一次进入OnDraw(),进入DrawAll(),里面链表没有数据,程序就直接结束了。我应该怎么操作才能先进入框架执行打开后又进入OnDraw()然后可以DrawAll().
二、 我用VC6.0写的程序,执行strcpy()时候调试单步会进入到汇编,why?
CXXXXView类要实例化了才能用它的指针,我在类里面没有实例化就用了它的指针,我是这样写的:
//全局的视图类指针
CDXFCtrlView *p_View;
void DPtoVP(double x, double y, int *X, int *Y)
{
p_View->DPtoVP(x,y,X,Y); //调用视图类的DPtoVP函数
}
*p_View指针为实例化对象,当我用这个DPtoVP的时候就会出现异常,然后函数里面的数据明明初始化了的显示为初始化的数据,整个程序的异常是不是又可能出现在这里?
...全文
638 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
swfans 2010-09-09
  • 打赏
  • 举报
回复
(1)我进入DrawAll()中判断过链表存储的信息,里面没有数据。
(2)没有初始化就用了指针,这样是不是不行?
wltg2001 2010-09-08
  • 打赏
  • 举报
回复
一、 我在CXXXView类里面写了一个DrawAll()函数,用这个函数来绘制图形,然后再OnDraw()里面被调用,从而达到图形显示的目的。我在OnOpenDocument()和OnDraw()的函数开始处设置断点,调试运行,我的框架没显示就直接跳OnDraw(),因为DrawAll()里面对有对模板类链表的操作,而第一次进入OnDraw(),进入DrawAll(),里面链表没有数据,程序就直接结束了。我应该怎么操作才能先进入框架执行打开后又进入OnDraw()然后可以DrawAll().
=========
你在DrawAll中判断一下链表中有没有数据不就行了。

二、 我用VC6.0写的程序,执行strcpy()时候调试单步会进入到汇编,why?
CXXXXView类要实例化了才能用它的指针,我在类里面没有实例化就用了它的指针,我是这样写的:
//全局的视图类指针
CDXFCtrlView *p_View;
void DPtoVP(double x, double y, int *X, int *Y)
{
p_View->DPtoVP(x,y,X,Y); //调用视图类的DPtoVP函数
}
*p_View指针为实例化对象,当我用这个DPtoVP的时候就会出现异常,然后函数里面的数据明明初始化了的显示为初始化的数据,整个程序的异常是不是又可能出现在这里?
===============
你上面的p_View到底有没有初始化啊?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧