最近在写一个画板的程序(刚学windows程序设计),遇到一个奇怪的问题,大致是这样的
比如我用到两个类,一个父类,一个子类
class A
{
virtual void draw(){}
};
class B:public A
{
void draw(){}
};
A a = new B;
再不用的重绘的情况s a对象调用B类里的函数,但是一重绘(比如窗口放大),a就调用A类里的函数了。很让人摸不着脑。
请各位帮忙想象可能是因为什么原因?
比如我用到两个类,一个父类,一个子类
class A
{
virtual void draw(){}
};
class B:public A
{
void draw(){}
};
A a = new B;
再不用的重绘的情况s a对象调用B类里的函数,但是一重绘(比如窗口放大),a就调用A类里的函数了。很让人摸不着脑。
请各位帮忙想象可能是因为什么原因?
解决方案 »
- 类继承的Onpaint问题
- 如何从txt读出数据到数组
- 请教关于编辑窗口的问题
- 在dos下,我想将一个字符串通过打印机打印出来,该怎嘛实现??
- Drag and Drop
- 如何把WORD格式转化成传真格式
- 智能指针
- 大家看这个网址http://www.softechsoftware.it/main.html,谁有iconsST.dll v1.3
- c#编的程序,想在98或2000下运行,应该是不行的,还要加上那些东东?
- 请大家帮我看看这段简单的代码
- 我建了一个单文档应用程序,视类基类为CFormView,我不需要主菜单,应该怎么做??
- new/delete 和globalalloc/globalfree的不同??
是A *a = new B;
比如说我WM_PAINT里调用a->draw();在放大窗口后调用的是A里的函数,因为我把a->draw();直接换成B里的draw函数,就可以正常工作
即:
void A::draw{ TRACE("A:draw called,%x\n",this); .....}
void B::draw{ TRACE("B:draw called,%x\n",this); .....}