写了一个控件,作用是在ImgEdit1上画框。现在问题是在ImgEdit1重画是所有的框框都被SendToBack了(点击一下框框的区域框框就显示出来了),控件是从TCustomControl继承下来的。怎么获得ImgEdit1的WM_Paint消息?

解决方案 »

  1.   

    procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
    楼主说的是这个吗?
      

  2.   

    ImgEdit?没用过,是delphi自带的么?
      

  3.   

    to merkey2002(小样的)  不是,它是用来显示图片的控件。to xixuemao(一点技术含量都没有) :情况是这样的,我在ImgEdit1显示的图像上画出几个框(用来选中图片上的区域),可是点一下空白区域(没有选中的区域)这下原来画的框就全部不显示了,在原来画框的区域里点击一下,点击的这个框就有显示出来,我想法是在ImgEdit1的重画事件中重画所有的框。不知道我这样说明了吗?
      

  4.   

    TCustomControl提供了Paint的virtual方法啊,你override这个方法,然后把你处理的代码放到这个paint里面,最后inherited父类的paint。试试看!
      

  5.   

    我试过了还是不行的,我觉得override我的这个控件的Paint方法,是在重画这个控件是触发,现在的原因可能是在imgEdit的重画时间中那些控件“消失”的。
      

  6.   

    这个控件的作用就是可以在图片上选中某块区域,并且可以改变选中区域的大小和设置一些区域属性。控件本身的作用就是这些,因为图片是在imgEdit中显示的,所以就会出现当imgEdit重画是这个控件显示不出来的问题。也就是说这个控件本身显示没有问题,但和imgEdit结合以后就出现问题了。
      

  7.   

    没明白你的意思,
    你是不是想实现:
    你自定义的控件去截获另外一个控件(imgEdit)的WM_Paint消息,并对这个控件(imgEdit)画边框?
      

  8.   

    to merkey2002(小样的) 不是这样的,是我想在控件(imgEdit)的重画事件中重画所有已经画上去的自定义控件。
      

  9.   

    为什么你不继承imgEdit控件,去实现画框呢?而是做另一个控件给imgedit画框?
      

  10.   

    to merkey2002(小样的)
    如果继承了imgEdit控件那就职能给imgEdit画框了,作另一个控件就可以为所有的控件画框了。