Win32 窗口篇(3)
生活随笔
收集整理的這篇文章主要介紹了
Win32 窗口篇(3)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
?
1.11 如何顯示或隱藏窗口的標(biāo)題欄
使用ModifyStyle方法改變參數(shù)來更改窗體樣式
void CDemoDlg::OnTest1() {//刪除標(biāo)題欄風(fēng)格ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED); }void CDemoDlg::OnTest2() {//添加標(biāo)題欄風(fēng)格ModifyStyle(0, WS_CAPTION, SWP_FRAMECHANGED); }?
1.12 如何改變窗口的形狀
效果:
1.13 如何設(shè)置窗口的透明區(qū)域
將2個(gè)區(qū)域合并成一個(gè)區(qū)域,貌似沒啥用
CRect rect1; GetWindowRect(rect1);CRect rect2; GetClientRect(rect2); ClientToScreen(rect2);CRgn rgn1; rgn1.CreateRectRgn(rect1.left, rect1.top, rect1.right, rect1.bottom);CRgn rgn2; rgn2.CreateRectRgn(rect2.left, rect2.top, rect2.right, rect2.bottom);CRgn rgn; rgn.CreateRectRgn(0, 0, 1, 1);rgn.CombineRgn(&rgn1, &rgn2, RGN_DIFF);//設(shè)置窗口區(qū)域 SetWindowRgn((HRGN)rgn2,TRUE);?
1.14 如何實(shí)現(xiàn)透明窗口
先修改窗體樣式,然后調(diào)用SetLayeredWindowAttributes方法更改透明度
//添加WS_EX_LAYERED(0x80000)擴(kuò)展風(fēng)格 ModifyStyleEx(0, 0x80000); ::SetLayeredWindowAttributes(GetSafeHwnd(), 0, 128, 2);The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window.
效果:
1.15 如何使窗口閃爍
調(diào)用FlashWindow方法,參數(shù)True則窗體閃爍一次,False則停止閃爍
void CDemoDlg::OnTest1() {//設(shè)置定時(shí)器SetTimer(1, 1000, NULL); }void CDemoDlg::OnTest2() {//關(guān)閉定時(shí)器KillTimer(1);//窗口返回原始狀態(tài)FlashWindow(FALSE); }void CDemoDlg::OnTimer(UINT nIDEvent) {if (nIDEvent == 1){//窗口從一種狀態(tài)閃爍到另一種狀態(tài)FlashWindow(TRUE);}CDialog::OnTimer(nIDEvent); }轉(zhuǎn)載于:https://www.cnblogs.com/Clingingboy/archive/2011/03/20/1989324.html
總結(jié)
以上是生活随笔為你收集整理的Win32 窗口篇(3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 数据类型及相互转换及常用基础
- 下一篇: 仙居(一)