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