win32程式的變形視窗的實現

2021-06-16 20:13:24 字數 1366 閱讀 9588

1.在wndclass當中的lpszmenuname一定要為空,因為不能有選單欄

2.hbrbackground要以為背景

3.建立視窗時,要使用createwindowex第乙個引數是ws_ex_topmost

4.在視窗訊息的處理過程當中,一定要攔截wm_create訊息,然後設定分層屬性

5.完成了以上五步,則異形視窗即可實現

#include

hbitmap hbitmap;

lresult winapi callback dlgproc(hwnd hwnd,uint msg,wparam wparam,lparam lparam)

case wm_destroy:

postquitmessage(0);

break;

default:

return defwindowproc(hwnd,msg,wparam,lparam); }}

bool register(hinstance hinstance,int ncmdshow)

else

return false;

}int apientry winmain(hinstance hinstance,hinstance hpreinstance,lpstr lpcmdline,int ncmdshow)

bitmap bitmap;

getobject(hbitmap,sizeof(bitmap),&bitmap);

hwnd hwnd=createwindowex(ws_ex_topmost,

l"wndclass",

null,

ws_popup,

0,0,

bitmap.bmwidth,

bitmap.bmheight,

null,

null,

hinstance,

null);

::showwindow(hwnd,ncmdshow);

::updatewindow(hwnd);

msg msg;

while(getmessage(&msg,hwnd,0,0))

}

這樣就複習了下windows視窗的建立過程,一是宣告乙個wndclass類,來對其進行說明,填充,然再registerclass函式進行對類進行註冊,註冊成功後,就可以使用createwindowex,來建立視窗了,這兩者的聯絡使用的是類的名稱,建立完成之後就可以顯示視窗了,即showwindow函式,然後是updatewindow,顯示完成後,還沒有結束,因為我們知道windows使用的是訊息機制,我們還沒有對訊息進行處理,換句話說,就是上面的設定分層屬性也是要在訊息處理函式中進行的,不斷的接收訊息,然後過濾訊息,對特定訊息進行處理

建立Win32視窗程式

建立win32視窗程式的步驟 建立win32視窗程式 int winapi winmain hinstance hinstance,hinstance hprevinstance,lpstr lpcmdline,int nshowcmd 構造視窗 winmain wndclas wndclass w...

win32程式 註冊視窗類

win32程式裡面乙個很重要的概念就是 視窗類 注意此處的 類 是和c 語法裡面的 類 是完全不同的東西。視窗類註冊結構體wndclas 主要包括訊息處理函式 視窗類型別 以及其他的視窗類屬性。registering a window class associates a window proced...

win32下實現透明視窗

define ws ex layered 0x00080000 define lwa colorkey 0x00000001 define lwa alpha 0x00000002 class ctransparent hinstance ctransparent m hinstance null ...