各位大虾:
    小弟现在碰到一个问题,不知道怎么解决。
    我在一个窗体的 OnDraw 事件里面写了一段代码 A,但是我不希望每次执行 OnDraw 都执行 A,而是在某几种情况下触发 OnDraw 事件才执行 A。比如:在拖动窗体的滚动条的时候会触发 OnDraw 事件,但这个时候我不想执行代码 A,而在拖动窗体分割条或者改变窗体大小的时候,也执行 OnDraw 事件,此时我却希望执行 A,我不知道该怎么解决这个问题,希望大家帮忙,谢谢。

解决方案 »

  1.   

    设置布尔变量,当执行操作的时候变量设为真。当执行完A后,变量设置为false,就可以了,如果担当是改变窗口大小的操作的话,可以在onsie中执行A也要加上判定。
      

  2.   

    首先感谢楼上的,你说的放在 OnSize 在之前我就已经试过了,不行的
    我的代码 A 其实就是在窗体上,框定 n 个矩形面积,也就是生成一个 CRect 数组,在窗体显示的过程中(我是设置一开始就最大化显示),OnSize 方法执行了 n 次,OnDraw 方法执行了 2 次,根据打印的日志看,最后一次日志输出是执行 OnDraw 引起的,如果把代码 A 放在 OnSize 中,生成的 CRect 和我实际需要的有偏离问题而放在 OnDraw 当中没有问题。
      

  3.   

    如果不行的话,有没有办法控制 OnSize 和 OnDraw 事件的执行,因为当改变窗口大小的时候,这两个方法是同时开始执行的,能不能延迟某个方法的执行,比如说,等 OnSize 执行到某一行代码以后才让 OnDraw 开始执行呢?
      

  4.   

    感谢大家,我在 OnSize 里面设置 BOOL 变量,把代码 A 还是放在 OnDraw 里面解决了,结贴