2011-11-24 141 views
2

的Win32 API提供了窗口創造了許多風格和我在尋找一種風格,可以從我使用此代碼創建的窗口中刪除一個像素的邊框:的Win32:如何創建一個bordless彈出窗口

DWORD dwExtStyle = 0; 
DWORD dwStyle = WS_POPUPWINDOW; 

    m_hWnd = CreateWindowEx(
    dwExtStyle, 
    className, 
    windowName, 
    dwStyle, 
    300, 
    300, 
    100, 
    100, 
    NULL, 
    NULL, 
    hInstance, 
    NULL); 

ShowWindow(m_hWnd, SW_SHOW); 

和我得到的結果是:

enter image description here

什麼組合標誌可以從窗口中刪除黑色邊框。

回答

7

只需使用WS_POPUP而不是WS_POPUPWINDOW

WS_POPUPWINDOW實際上是一組標誌:

#define WS_POPUPWINDOW (WS_BORDER | WS_POPUP | WS_SYSMENU) 

WS_BORDER標誌是一個負責任的黑色方形的。

+0

謝謝。我試圖只用WS_POPUP創建一個窗口,但桌面上沒有任何窗口。比我發現我創建了一個空背景畫筆的窗口。奇怪的是,當我使用WS_POPUPWINDOW創建一個窗口(出現了一個白色)時,NULL刷子被忽略,並且我正在使用WS_POPUP創建一個窗口,通常使用背景刷。 – shadeglare

+0

@MaxFX背景畫筆和WS_POPUPWINDOW不應相關,AFAIK。但是請注意,如果你的窗口沒有重繪自己(WM_PAINT),並且沒有背景畫筆和邊框,它就像變色龍一樣,保持屏幕上出現的任何圖像,並且很容易錯過。 – rodrigo