2011-09-27 24 views
5

我使用這些窗口樣式調用CreateWindow
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
這將禁用最大化框的時候,但有什麼辦法可以徹底清除嗎?C++的Windows中刪除最大化框

+0

不,不可能。 –

+3

我認爲這是一個壞主意,刪除它,因爲可用性。緊靠左邊的按鈕總是最大化,左邊的按鈕總是最小化。改變這樣的事情會讓人感到困惑。 – IronMensan

+0

@HansPassant - 您能否通過鏈接回覆我可以閱讀更多關於「不可能」的鏈接。真的很難相信微軟不會提供這樣做的方式......(但是我看了,到目前爲止不能證明你錯了:)謝謝 – ryyker

回答

2

沒有簡單的方法,但如果你要自己畫標題欄 - 在這種情況下,你可以做到這一點。

給你一個想法,這篇文章Adding a 'Minimize to tray'-button to a Form's caption bar解釋瞭如何添加一個按鈕。刪除標準按鈕大致相同 - 定製non-client area

1

這將刪除結束後,從Windows 7面板最小化和最大化按鈕我意識到這是很(非常)姍姍來遲,但貼在這裏,因爲它可以幫助別人有同樣的問題。

void ClearButtons(void) 
{ 
    int index = WS_BORDER; 
    unsigned int a = (unsigned int)((WS_BORDER | WS_CAPTION) & (~WS_ICONIC)); 

    LONG_PTR lPtr; 
    HWND hWnd = GetActiveWindow(); 
    lPtr = GetWindowLongPtr(hWnd, index); 
    SetWindowLongPtr(hWnd, GWL_STYLE, a); 
} 
相關問題