我在form里头调用DrawFrameControl画控件,可是显示的时候出不来,我用按纽调用DrawFrameControl函数画空间可以出来,可是最小化,然后还原后控间又没有了。获取WM_NCPAINT消息进行重新画也不能解决上面的问题。
请问各位高手,该如何保证我DrawFrameControl画控件在任何情况下都可见呢?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      ARect: TRect;
      DC: HDC;
    begin
      DC := GetWindowDc(Handle);
      ARect.top := 100;
      ARect.Left := 100;
      ARect.Bottom := 120;
      ARect.Right := 120;
      DrawFrameControl(DC, ARect, DFCS_CAPTIONMIN, DFC_CAPTION);
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      ARect: TRect;
      DC: HDC;
    begin
      DC := GetWindowDc(Handle);
      ARect.top := 10;
      ARect.Left := 10;
      ARect.Bottom := 20;
      ARect.Right := 20;
      DrawFrameControl(DC, ARect, DFCS_CAPTIONMIN, DFC_CAPTION);
    end;end.
      

  2.   

    WM_Paint ; WM_Actiate ;WM_NCActivate;