WinAPI: Créer de la fenêtre redimensionnable sans barre de titre, mais avec réduire/agrandir/fermer les boutons (comme Firefox/Chrome/Opera)

Si vous regardez les fenêtres des navigateurs Firefox, Chrome ou Opera, vous remarquerez que leur windows

  • ont réduire/agrandir/fermer les boutons
  • sont redimensionnables
  • mais n'ont pas de barre de titre

Je suis intéressé: comment puis-je créer une fenêtre?

Ce que j'ai déjà essayé:

J'ai regardé autour de sur StackOverflow (et googlé, aussi), et trouvé ceci: l'ouverture d'une fenêtre qui n'a pas de barre de titre avec win32

Malheureusement, cela n'a pas aider du tout au tout:

La première étape a été d'étendre la solution proposée sur l'ouverture d'une fenêtre qui n'a pas de barre de titre avec win32

hWnd = CreateWindow(szWindowClass, szTitle, WS_BORDER, 
  CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
  NULL, NULL, hInstance, NULL);

SetWindowLong(hWnd, GWL_STYLE, WS_SIZEBOX);
//See remarks on http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545.aspx
SetWindowPos(hWnd, 0, 
   0, 0, 0, 0, //Position + Size
   SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);

Bien sûr, cela ne produit pas de minimiser/maximiser les boutons, mais d'un autre côté, si je veux minimiser/maximiser les boutons, j'ai à faire:

SetWindowLong(hWnd, GWL_STYLE, WS_SIZEBOX | WS_MAXIMIZEBOX | 
    WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION);

Pourquoi cette combinaison semble être nécessaire? D'abord je voudrez probablement WS_MAXIMIZEBOX | WS_MINIMIZEBOX, car je veux un de ces boutons.

Mais http://msdn.microsoft.com/en-us/library/ms632600.aspx dit que si j'ai mis un de WS_MAXIMIZEBOX et WS_MINIMIZEBOX, j'ai aussi de définir WS_SYSMENU. Et quand je WS_SYSMENU, j'ai aussi de définir WS_CAPTION mais ce n'est pas ce que je veux, parce que je voulais éviter la barre de titre (en effet: si WS_CAPTION n'est pas de jeu, pas de minimiser/maximiser les boutons sont visibles).

Donc ce qui est à faire?

  • Cette méthode ne fonctionne pas sur windows 10
InformationsquelleAutor Nubok | 2011-10-06