CreateWindow中dwStyle設置為WS_POPUP時顯示不出來


今天我在調試一個程序的時候,想要創建一個無標題欄無邊框的窗口,按照之前的邏輯,代碼應該這麼寫


...;
hwnd = CreateWindow(szAppName,
TEXT("無標題欄無邊框窗口"),
WS_POPUP,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
...;

查詢瞭API檔案才發現,CreateWindow()參數的x、y、nWidth、nHeight參數,設置為CW_USEDEFAULT這個默認值,隻對於層疊窗口有效,也就是說隻有當dwStyle設置為WS_OVERLAPPEDWINDOW這個參數時,才可以使用CW_USEDEFAULT這個宏,否則的話,全部默認是0,這樣子窗口自然顯示不出來瞭。


能顯示出來的代碼如下


...;
hwnd = CreateWindow(szAppName,
TEXT("無標題欄無邊框窗口"),
WS_POPUP,
200, // 指定窗口左上角頂點的x坐標
200, // 指定窗口左上角頂點的y坐標
600, // 指定窗口的寬度
600, // 指定窗口的高度
NULL,
NULL,
hInstance,
NULL);
...;

總結下來就是,初學Win SDK編程,在使用API函數的時候,一定要細心,不能想當然的改,對於每個參數應該怎麼傳入,都需要非常細心的檢查。雖然耗時良久,但是細水流長,心急成不瞭大神。

0 個評論

要回覆文章請先登錄註冊