程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 制作透明窗體

制作透明窗體

編輯:關於C++

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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved