AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > C++

制作透明窗体

51自学网 http://www.wanshiok.com
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;
}

 

 

 
上一篇:C++ BUILDER 动态建立菜单及菜单事件  下一篇:重载CreateParams实现无标题栏的窗体