Fenêtre instantanément ajustée

Description

Bonjour,

Les programmes qui présentent une fenêtre principale où la taille s'adapte immédiatement à une situation donnée sont relativement rares.
Voici un exemple pour Windows, adapté à l'affichage du jeu Taquin avec des nombres de colonnes et de lignes variables.

Pour ce faire, on détermine, à l'aide de AdjustWindowRect() les dimensions des bords (wBd, hBd) selon le type de fenêtre, c'est-à-dire la "différence" entre le WindowsRect et le ClientRect.
Puis, chaque fois que c'est nécessaire, on adapte les dimensions de la fenêtre avec MoveWindow():
void ReSize(HWND h) {
  RECT r; GetWindowRect(h, &r);
  MoveWindow(h, r.left, r.top, wBd + clientWidth, hBd + clientHeight, true);
}

Dans exemple proposé dans le fichier WinDyn.cpp, le point supérieur gauche (r.left, r.top) de la fenêtre reste immobile.

Remarque: Pour simplifier le code et pour en montrer une application à un jeu connu, on se limite à la partie affichage du jeu Taquin.

Prochainement, j'utiliserai cet affichage avec un jeu Taquin NCxNL "complet" (sans solveur).

Bonne lecture ...

Codes Sources

A voir également