要求是在item编辑结束之后,触发事件,使得同一个dialog中的picture box控件的图重绘。绘图函数为Draw()本来想重载BCGGridCtrl中的itemchanged函数的,但是在重载的函数中无法通过对话框类的实例调用raw()重绘。请问有其他方法能解决这个问题吗?就是点击表格中的一个ITEM,或者叫CELL,触发事件让主界面的重新绘制picture 控件上的图。

解决方案 »

  1.   


    重绘函数实在dialog里写的,不是在picture控件上。重绘的关键是调用函数Draw()而不是刷新picture控件。现在的难点是怎么在dialog这个类中响应在表格中编辑ITEM结束这个消息,因为BCGGrid控件是代码加上去的,不是标准控件拖上去的。BCGGrid控件类倒是有 EndEditItem 这样的能重载的虚函数。问题是应该自己继承BCGGrid控件类然后重载这个函数,还是在dialog类里重载这样的函数呢?如果是自己继承类中重载EndEditItem 这样的函数,怎么在重载函数里调用 dialog类里的Draw()函数呢?
    我试过了,如果用dialog实例调用,会出错,提示窗口句柄不存在。所以应该是无法在BCGGrid控件类的子类中调用dialog的函数的?那就很难通过重载实现事件响应了。
      

  2.   

    系统定义消息,触发OnPaint()