Pour créeer une ProgressBar avec indicateur continu pas de problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
HWND MyProgressBar;

MyProgressBar =CreateWindowEx(WS_EX_STATICEDGE, PROGRESS_CLASS, (LPSTR)NULL,
		       WS_CHILDWINDOW | WS_VISIBLE |PBS_SMOOTH,
		       20, 20, 170, 18,
		       Handle, NULL, HInstance, NULL);
cependant je voudrais pouvoir basculer à tout moment l'aspect entre "smooth" et petits rectangles
et j'utilise donc SetWindowLong comme le precise msdn

Citation Envoyé par msdn
Remarks

You can set progress bar styles, in the same way as other common controls, with CreateWindowEx, GetWindowLong, or SetWindowLong.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
HWND MyProgressBar;

MyProgressBar =CreateWindowEx(WS_EX_STATICEDGE, PROGRESS_CLASS, (LPSTR)NULL,
		       WS_CHILDWINDOW | WS_VISIBLE ,
		       20, 20, 170, 18,
		       Handle, NULL, HInstance, NULL);


long style = GetWindowLong(MyProgressBar,GWL_STYLE);

//essaie de changement de style
SetWindowLong(MyProgressBar, GWL_STYLE,style |PBS_SMOOTH  );

Ce code ne provoque aucune erreur de compilation,GWL_STYLE est bien changé
mais il n'a aucun effet : la ProgressBar s'affiche toujours avec des petits carrés .


Ou est mon erreur ?

NB: je developpe en C++ avec BCB6