C++輔導(dǎo):制作透明窗體

字號(hào):

1.重載CreateParams函數(shù),設(shè)置透明風(fēng)格
    2.然后重載它的WM_ERASEBKGND消息。
    代碼片段:
    .h File
    class TYourForm:public TForm
    {
    private:
     void __fastcall WMNC(TMessage &Message);
    public:
     __fastcall TYourForm(TComponent *Owner);
     BEGIN_MESSAGE_MAP
     VCL_MESSAGE_HANDLER(WM_ERASEBKGND,TMessage,WMNC);
     END_MESSAGE_MAP(TForm);
    protected:
     virtual void __fastcall CreateParams(TCreateParams &Params);
    }
    .cpp File
    void __fastcall TYourForm::CreateParams(TCreateParams &Params)
    {
     TForm::CreateParams(Params);
     Params.EX_STYLE|=WS_EX_TRANSPARENT;
    }
    void __fastcall TYourForm::WMNC(TMessage &Message)
    {
     SetBkMode(GetWindowDC(this->Handle),OPAQUE);
     ReleaseDC(this->Handle,GetWindowDC(this->Handle)) ;
     Messgae.Result=1;
    }