设为首页 加入收藏

TOP

用GDI+实现半透明渐变的特效窗口(二)
2014-11-23 21:27:46 来源: 作者: 【 】 浏览:15
Tags:GDI 实现 透明 渐变 特效 窗口
);
//
SIZEsizeWindow={m_Image->GetWidth(),m_Image->GetHeight()};
POINTptSrc={0,0};
//SetWindowstyle
DWORDdwExStyle=GetWindowLong(Handle,GWL_EXSTYLE);
if((dwExStyle&0x80000)!=0x80000)
SetWindowLong(Handle,GWL_EXSTYLE,dwExStyle^0x80000);
//performthealphablend
BOOLbRet=UpdateLayeredWindow(Handle,hdcScreen,&ptWinPos,
&sizeWindow,m_hdcMemory,&ptSrc,0,&m_Blend,2);
//
graph.ReleaseHDC(m_hdcMemory);
ReleaseDC(0,hdcScreen);
hdcScreen=NULL;
ReleaseDC(0,hdcTemp);
hdcTemp=NULL;
DeleteObject(hBitMap);
DeleteDC(m_hdcMemory);
m_hdcMemory=NULL;
m_Image=NULL;
returnbRet;
}
//---------------------------------------------------------------------------
void__fastcallTfrmMain::FormMouseDown(TObject*Sender,
TMouseButtonButton,TShiftStateShift,intX,intY)
{
if(Button==mbLeft)
{
ReleaseCapture();
Perform(WM_SYSCOMMAND,SC_MOVE|HTCAPTION,0);
}
}
//---------------------------------------------------------------------------
void__fastcallTfrmMain::miShowAboutClick(TObject*Sender)
{
MessageBox(Handle,
"在BCB中用GDI+实现半透明渐变的特效窗口 "
"------------------------- "
"byccrun(老妖) "
"Welcometowww.ccrun.com",
"GDI+Window",MB_OK|MB_ICONINFORMATION);
}
//---------------------------------------------------------------------------
void__fastcallTfrmMain::miCloseAppClick(TObject*Sender)
{
Close();
}
//---------------------------------------------------------------------------
void__fastcallTfrmMain::miGoToCcrunClick(TObject*Sender)
{
ShellExecute(Handle,"Open","http://www.ccrun.com",NULL,NULL,SW_SHOW);
}
//---------------------------------------------------------------------------
void__fastcallTfrmMain::miStayOnTopClick(TObject*Sender)
{
TMenuItem*mi=(TMenuItem*)Sender;
mi->Checked=!mi->Checked;
SetWindowPos(Handle,mi->Checked HWND_TOPMOST:HWND_NOTOPMOST,
0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
//---------------------------------------------------------------------------
void__fastcallTfrmMain::miChangeSkinClick(TObject*Sender)
{
TOpenDialog*dlgOpen=newTOpenDialog(this);
dlgOpen->Filter="PNGfile(*.png)|*.png";
if(dlgOpen->Execute())
{
SetTransparent(WideString(dlgOpen->FileName),100);
Invalidate();
}
deletedlgOpen;
}
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇“八皇后”动态图形的实现 下一篇在c++程序中重启自己的一种方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: