Mise a jour de l'affichage
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:
::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:
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