VC菜鸟,正在学,写了一个读取bmp图像的MFC程序,但是编译一直出现下面这个提示错误,求高手指教啊,,,
25View.obj:errorLNK2001:unresolvedexternalsymbol"protected:virtualvoid__thiscallCMy25...
25View.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CMy25View::CalcWindowRect(struct tagRECT *,unsigned int)" (?CalcWindowRect@CMy25View@@MAEXPAUtagRECT@@I@Z)
琢磨了一下,运行时屏幕一闪就消失了问题应该在OnDraw函数中写了Invalidate(),不过,按照我下面这样写的程序,Invalidate()应该放在哪里才能调用OnDraw来进行重绘进而载入图片呢? 展开
琢磨了一下,运行时屏幕一闪就消失了问题应该在OnDraw函数中写了Invalidate(),不过,按照我下面这样写的程序,Invalidate()应该放在哪里才能调用OnDraw来进行重绘进而载入图片呢? 展开
2个回答
展开全部
是不是代码里不小心把CalcWindowRect添加了虚函数。
你找找CMy25View所在的头文件里,类里面是不是有CalcWindowRect的声明
有的话把它删掉。这个函数是CWnd里的
你找找CMy25View所在的头文件里,类里面是不是有CalcWindowRect的声明
有的话把它删掉。这个函数是CWnd里的
更多追问追答
追答
既然是DoModal,那么应该至少要等你选完文件。CDib是啥……一个对话框?如果是的话,这个对话框肯定是一下子就没了因为OnFileOpen函数结束了,出了这个作用于,它就被析构掉了。
用CDib *dib = new CDib;
dib->LoadFile(filename);可以解决这个问题,但是你要注意这个CDib如果是窗口,这个窗口关闭的时候要delete掉new出来这个对象。如果不是窗口,我真的也猜不出来这CDib到底是啥 - -
这里不应该用InvalidateRect,因为Doc类里用不了。
Doc类里用的是UpdateAllViews(0);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询