1.不規則視窗
原理:用乙個位圖畫刷繪製視窗背景,然後把想要透明的顏色設定為透明色,就可以使視窗變成任意形狀。
1執行效果://視窗處理函式
2lresult callback bitmapwindowproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)322
break
;
23case
wm_lbuttondown:
24//
當滑鼠左鍵點選時可以拖曳視窗
25 postmessage(hwnd, wm_syscommand, sc_move | htcaption, 0
);26
return0;
27case
wm_destroy:
28 postquitmessage(0
);29
return0;
30}31return
defwindowproc(hwnd, message, wparam, lparam);32}
3334
//初始化為位圖視窗(註冊視窗類、建立視窗、顯示視窗)
35 bool initbitmapwindow(hinstance hinstance, hbitmap hbitmap, int
ncmdshow)
3654
bitmap bmp;
55 getobject(hbitmap, sizeof(bmp), &bmp);
56//
建立視窗
57 hwnd hwnd = createwindowex(ws_ex_topmost, l"
hello
", l"
hellokitty
", ws_popup, cw_usedefault, cw_usedefault,
58bmp.bmwidth, bmp.bmheight, null, null, hinstance, null);
59if (null ==hwnd)
6063
//顯示視窗
64showwindow(hwnd, ncmdshow);
65updatewindow(hwnd);
66return
true;67}
6869
int apientry _twinmain(hinstance hinstance, hinstance hprevinstance, lptstr lpcmdline, int
ncmdshow)
7077
if (!initbitmapwindow(hinstance, hbitmap, ncmdshow))
78
81msg msg;
82while (getmessage(&msg, null, 0, 0
))83
87deleteobject(hbitmap);
88return0;
89 }
MFC不規則視窗
直接在onpaint 函式裡新增語句 setwindowlong m hwnd,gwl exstyle,getwindowlong m hwnd,gwl exstyle ws ex layered setlayeredwindowattributes rgb 255,255,255 0,lwa co...
如何建立不規則視窗
vc 中提供了crgn類和setwindowrgn函式來建立別具一格的視窗。建立乙個新視窗首先要定義乙個crgn物件,並用各種初始化函式建立crgn類的區域,然後呼叫cwnd setwindowrgn函式建立不規則視窗。crgn類是從cgdiobject類派生二來的子類,crgn類用來確定乙個多邊形...
如何設定不規則視窗GTK
為了體現高度的可制定性.對於gtk來說,肯定可以實現不規則的視窗.但是如何實現呢?在網上找到了一些資料.主要是用透明的來實現的.下面我們來分析一下實現的過程.pixbuf gdk pixbuf new from file 1.png null gdk pixbuf render pixmap and...