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 ...