打印本文 打印本文  关闭窗口 关闭窗口  
C++辅导:制作透明窗体
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:38:50  文章录入:杜斌  责任编辑:杜斌

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;
打印本文 打印本文  关闭窗口 关闭窗口