描述:
我在OnDraw事件中完成画我的控件的工作。
生成控件后在VB中使用时,编辑状态下用鼠标将控件往窗口的最上面拖动,一拖直到控件只有很少的一部分露在外面。再次用鼠标单击控件时,控件就自已把没有露在外面的部分显示出来了!
就连MFC生成的OnDraw中的那段缺省代码也有这个问题
解决方案1:
对,它是响应控件的大小变化的。
不过鼠标拖动的话,只是坐标变化(top,left),大小(length,width)没有变化
在vb的设计阶段,觉得有可能是坐标的值没有保存下来,测试了一下,拖动到top、left为负,点击之后仍为上一次的值,而运行一次之后再点击,top、left的值就能够保存下来,这个时候再点击就不会变化了。
macadamia(卡卡) ,你这段是做什么用的?
可以响应设计时期的控件大小变化么?
好象没反应嘛。
是MFC Activex生成的工程吧??
在ClassWizard中,Activex Events中,Add Event,External name 可以填写ReSize,在Paramter list增加两个参数:x,y,类型可以都为long型。
然后到Message Maps页面,增加对WM_SIZE消息的响应函数OnSize(),然后在该函数里增加该行代码:FireReSize(cx,cy);
会不会是OnDraw的时候,描画区域的坐标不对呢?
up,不太明白,他怎么会变的呢!估计是你的ondraw有问题。
解决方案6:用鼠标点击的时候,你的控件会响应paint消息进行重画,这是正常的,想要什么效果呢??