Bonjour,

J'ai un programme contenant un control listbox.
La listbox est contenue dans la fenêtre principale.
Lorsque la principale est redimensionnée, je fais en sorte qu'une fonction adapte les dimensions de la listbox aux dimensions de la fenêtre principale.

C'est pourquoi j'essaie de contrôler dans WndProc le message WM_NCCALCSIZE; mais... hélas, lorsque je fais cela, j'ai des ennuis.

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
		case WM_NCCALCSIZE:

			switch (wParam) {

				case TRUE:
				{
					BOOL x;
					WINDOWPOS *lpPosData = ((NCCALCSIZE_PARAMS *)lParam)->lppos;

					x = SetWindowPos(lpPosData->hwnd, lpPosData->hwndInsertAfter, lpPosData->x, lpPosData->y, lpPosData->cx, lpPosData->cy, lpPosData->flags);
					printf("%u %lu\n", x, GetLastError());
				}
				break;

				case FALSE:
				{
					return DefWindowProc(hwnd, msg, wParam, lParam);
				}
				break;

			}

		break;
Le message d'erreur obtenu (la fonction printf me écrivant 1004, la valeur de x) est : INVALID FLAGS.
Pourtant, les flags que je lui donne ne sont autres que ceux que l'on passe à WndProc lors de la réception de WM_NCCALCSIZE;


Que faire???


J'ai également une autre question moins prioritaire et similaire... Mais j'attends d'abord la réponse pour celle-ci, qui pourrait probablement me fournir une solution naturelle au deuxième problème...


Je vous remercie,

Cordialement,

Array