龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

制作透明窗体

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
1.重载CreateParams函数,设置透明风格 2.然后重载它的WM_ERASEBKGND消息。 代码片段: .h File class TYourForm:public TForm { private: void __fastcall WMNC(TMessage public: __fastcall TYourForm(TComponent *Owner); BEGIN_

  1.重载CreateParams函数,设置透明风格

  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;

  }

  

精彩图集

赞助商链接