ShowWindow

cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 - 1 juil. 2003 à 12:46
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 - 1 avril 2006 à 17:49
Salut à tous !

Mon problème est simple, j'utilise le code suivant dans ma WndProc :

  switch (uMsg) {
  case WM_ACTIVATE:
    if (HIWORD(wParam) != 0) ShowWindow(hWnd, SW_HIDE);
    return 0;
  }


Ce qui a pour effet de cacher la fenêtre lorsqu'on la minimise. Ensuite, je souhaiterais la restaurer, mais aucun de mes essais n'est satisfaisant (avec SW_SHOW elle reste minimisée, SW_SHOWNORMAL elle est derrière les autres fenêtres, SW_RESTORE elle est restaurée mais n'est pas activée)

Comment donc la restaurer et l'activer à tous les coups ?

Voici ce que j'utilise, toujours dans la WndProc :

      ShowWindow(hWnd, SW_RESTORE);
      ShowWindow(hWnd, SW_SHOW);
      UpdateWindow(hWnd);


Le but étant : lorsque la fenetre est minimisée, elle est remplacée par une TrayIcon, lorsqu'on clique sur la TrayIcon, la fenetre reapparait...

Merci d'avance :)
A voir également:

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 juil. 2003 à 12:57
essaie en mettant un SetForegroundWindow(hwnd);
BruNews, ciao...
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
1 juil. 2003 à 13:03
Impec, çà marche, merci !
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
1 avril 2006 à 17:49
Chez moi, il est impossible de faire apparaitre le fenetre.

ShowWindow(hWnd, SW_HIDE);
SetForegroundWindow(hWnd);
ShowWindow(hWnd, SW_RESTORE);
SetForegroundWindow(hWnd);
ShowWindow(hWnd, SW_SHOW);
SetForegroundWindow(hWnd);
UpdateWindow(hWnd);
SetForegroundWindow(hWnd);

La fenetre (WS_SYSMENU | WS_OVERLAPPED) se cache mais ne reapparait pas.
0
Rejoignez-nous