Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1398 connectés 

  FORUM HardWare.fr
  Programmation
  C++

   [MFC] Cacher la barre des taches

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC] Cacher la barre des taches

n°274685
antsite
Je me souviens
Posté le 22-12-2002 à 11:06:54  profilanswer
 

Salut,
Je cherche à cacher la barre des taches de Windows (Démarrer,...). Le moyen simple étant de faire une fenetre ayant la taille de l'écran, ainsi elle recouvre la barre. Mais lors de l'appui sur la touche windows, ou sur Ctrl-Echap, la barre se réaffiche (Menu démarrer).
J'ai essayé d'intercepter l'appui sur cette touche de la façon suivante mais rien n'y fait :

Code :
  1. void CUsersDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
  2. {
  3. switch(nChar)
  4. {
  5. case VK_LWIN:
  6. case VK_RWIN:
  7.  return;
  8.  break;
  9. default:
  10.  break;
  11. }
  12. CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
  13. }


OnKeyDown n'est même pas appelée quand j'appui sur une touche lorsque ma Dialog a le focus...
Que faire ? Merci
 ANT
 
P.S. : Evidemment s'il existe une API du genre HideTaskbar(), je suis preneur !

mood
Publicité
Posté le 22-12-2002 à 11:06:54  profilanswer
 

n°274686
youdontcar​e
Posté le 22-12-2002 à 11:14:26  profilanswer
 

antsite a écrit :

Mais lors de l'appui sur la touche windows, ou sur Ctrl-Echap, la barre se réaffiche (Menu démarrer).

c'est fait pour. pas touche.

n°274687
antsite
Je me souviens
Posté le 22-12-2002 à 11:16:56  profilanswer
 

Oui mais ce que je comprens pas trop c'est pourquoi des applications Fullscreen genre jeu ou autre, sont insensibles à l'appui sur la touche windows !

n°274688
youdontcar​e
Posté le 22-12-2002 à 11:44:52  profilanswer
 

dans quake2 c'est SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, false, ...)

n°274941
velleronna​is
Posté le 22-12-2002 à 23:34:15  profilanswer
 

antsite a écrit :

Salut,
Je cherche à cacher la barre des taches de Windows (Démarrer,...). Le moyen simple étant de faire une fenetre ayant la taille de l'écran, ainsi elle recouvre la barre. Mais lors de l'appui sur la touche windows, ou sur Ctrl-Echap, la barre se réaffiche (Menu démarrer).
J'ai essayé d'intercepter l'appui sur cette touche de la façon suivante mais rien n'y fait :

Code :
  1. void CUsersDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
  2. {
  3. switch(nChar)
  4. {
  5. case VK_LWIN:
  6. case VK_RWIN:
  7.  return;
  8.  break;
  9. default:
  10.  break;
  11. }
  12. CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
  13. }


OnKeyDown n'est même pas appelée quand j'appui sur une touche lorsque ma Dialog a le focus...
Que faire ? Merci
 ANT
 
P.S. : Evidemment s'il existe une API du genre HideTaskbar(), je suis preneur !


 
ouais, j'ai eu le meme probleme, pourintercepter une touche faut un peu plus que OnKeyDown()
 
il faut aussi implementer PreTranslateMessage pour attraper au vol l'evenement puis l'envoyer sur OnKeyDown .... je sais ca peut paraitre caca, mais je l'ai vu tel quel dans la msdn, alors si c'est microsoft qui le dit, on eut leur faire confiance.
 
Faut que tu gardes ton OnKeyDown et que tu implemetes donc PreTranslateMessage.
 
voila pour info une partie de la page de la msdn qui cause de ca :
 
Handling Special Keys in Your Control
In some cases you may want to handle certain keystroke combinations in a special way; for example, insert a new line when the ENTER key is pressed in a multiline text box control or move between a group of edit controls when a directional key ID pressed.
 
If the base class of your ActiveX control is COleControl, you can override CWnd::PreTranslateMessage to handle messages before the container receives them. When using this technique, always return TRUE if you handle the message in your override of PreTranslateMessage.
 
The following code example demonstrates a possible way of handling any messages related to the directional keys.
 
BOOL CSampleControl::PreTranslateMessage(LPMSG lpmsg)
{
    BOOL bHandleNow = FALSE;
 
    switch (lpmsg->message)
    {
    case WM_KEYDOWN:
        switch (lpmsg->wParam)
        {
        case VK_UP:
        case VK_DOWN:
        case VK_LEFT:
        case VK_RIGHT:
            bHandleNow = TRUE;
            break;
        }
        if (bHandleNow)
            OnKeyDown(lpmsg->wParam, LOWORD(lpmsg  
                ->lParam), HIWORD(lpmsg->lParam));
        break;
    }
    return bHandleNow;
}
 
For more information on handling keyboard interfaces for an ActiveX control, see the ActiveX SDK documentation.
 

n°274943
velleronna​is
Posté le 22-12-2002 à 23:36:10  profilanswer
 

le meme copier collre de la msdn sans les smileys :
 

Code :
  1. Handling Special Keys in Your Control
  2. In some cases you may want to handle certain keystroke combinations in a special way; for example, insert a new line when the ENTER key is pressed in a multiline text box control or move between a group of edit controls when a directional key ID pressed.
  3. If the base class of your ActiveX control is COleControl, you can override CWnd::PreTranslateMessage to handle messages before the container receives them. When using this technique, always return TRUE if you handle the message in your override of PreTranslateMessage.
  4. The following code example demonstrates a possible way of handling any messages related to the directional keys.
  5. BOOL CSampleControl::PreTranslateMessage(LPMSG lpmsg)
  6. {
  7.     BOOL bHandleNow = FALSE;
  8.     switch (lpmsg->message)
  9.     {
  10.     case WM_KEYDOWN:
  11.         switch (lpmsg->wParam)
  12.         {
  13.         case VK_UP:
  14.         case VK_DOWN:
  15.         case VK_LEFT:
  16.         case VK_RIGHT:
  17.             bHandleNow = TRUE;
  18.             break;
  19.         }
  20.         if (bHandleNow)
  21.             OnKeyDown(lpmsg->wParam, LOWORD(lpmsg
  22.                 ->lParam), HIWORD(lpmsg->lParam));
  23.         break;
  24.     }
  25.     return bHandleNow;
  26. }
  27. For more information on handling keyboard interfaces for an ActiveX control, see the ActiveX SDK documentation.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

   [MFC] Cacher la barre des taches

 

Sujets relatifs
[VC++] Afficher ou cacher un controle ?[C++]Cherche tutorial MFC + OpenGL
[MFC] ToolBar en Visual C++ 6Code qui permet de virer la barre d'ascenseur à droite inutile. OK
[Visual C++ MFC] Faire correspondre deux classes ?[MFC] pb SetDlgItemText()
[MFC] Problème d'includeenvoi d'email simple avec MFC?
Un menu déroulant avec une barre de défilement ça existe ?barre de defilement
Plus de sujets relatifs à : [MFC] Cacher la barre des taches


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR