Bonjour a tous,

je suis en train de créer une barre de controle qui se situera sur le coté gauche du bureau. j'utilise la fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
::SystemParametersInfoW(SPI_SETWORKAREA,0,m_DimPinnedDesktop,SPIF_SENDCHANGE);
pour définir un bureau plus petit, de manière a ce que les fenetres maximisées ne soient pas "au dessus" de ma barre de controle.

ceci fonctionne parfaitement si je maximise une fenetre par la suite, mais si une fenetre est déja maximisée, je n'arrive pas à lui dire de faire un mise a jour de l'affichage.

j'ai essayé des truc du genre :

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
::SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE,0 , 0); 
 
//ou alors
 
CWnd* pWnd = CWnd::GetDesktopWindow( )->GetTopWindow( );
 
while( 1 )
	{
		pWnd = pWnd->GetNextWindow();
		if ( pWnd == NULL ) break;
		if(pWnd->GetStyle() & SW_SHOWMAXIMIZED &&    pWnd->IsWindowVisible())
		{
			::SendMessage(pWnd->GetSafeHwnd(),WM_SETTINGCHANGE , 0, 0);
 
			//ou bien aussi
 
			pWnd->ShowWindow(SW_SHOWMAXIMIZED);
		}
	}
Mais rien n'y fait. Si quelqu'un sait comment s'y prendre... Merci