2011-09-27 8 views
5

sto usando questi stili massimizzare la finestra al momento della chiamata CreateWindow
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
Questo disabilita la casella di ingrandimento, ma c'è un modo per rimuoverlo completamente?C++ di Windows rimuovere box

+0

No, non possibile. –

+3

Penso che sarebbe una cattiva idea rimuoverlo a causa dell'usabilità. Il pulsante immediatamente a sinistra della chiusura è sempre ingrandito ea sinistra di quello è sempre minimizzato. Cambiare cose del genere confonde le persone. – IronMensan

+0

@HansPassant - Puoi _PLEASE_ rispondere con un link a dove posso leggere di più su "Not Possible". È davvero difficile credere che Microsoft non fornirebbe un modo per farlo ... (ma ho guardato, e fino ad ora non posso dimostrare che hai torto :) Grazie – ryyker

risposta

2

Nessun modo semplice, ma se si sta per disegnare la barra del titolo da soli - in questo caso è possibile farlo.

Per darvi un'idea, questo articolo Adding a 'Minimize to tray'-button to a Form's caption bar spiega come aggiungere un pulsante. La rimozione del pulsante standard è quasi la stessa: personalizzazione di non-client area.

1

Questo eliminerà lo stretto, minimizzare e massimizzare i pulsanti da un pannello di Windows 7Mi rendo conto che è molto (molto) tarda ad arrivare, ma postato qui come può aiutare qualcun altro con lo stesso problema .

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); 
}