Numéro d'article: 266244 - Dernière mise à jour: vendredi 19 août 2005 - Version: 4.2

Comment faire pour créer des applications plein écran pour le Pocket PC

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.
Agrandir tout | Réduire tout

Résumé

La documentation explique clairement comment utiliser SHFullScreen API dans une application Win32 non - MFC Microsoft Foundation Class pour créer des fenêtres de plein écran sur le PC de poche. Toutefois, la documentation ne décrit pas la même procédure pour les applications MFC. Cet article décrit comment rendre des applications filtré plein pour le Pocket PC à l'aide de le Win32 API ou MFC.

Plus d'informations

Pour les applications qui ciblent Windows CE, il est devenu populaire d'utiliser autant de l'écran des périphériques Palm taille plus petits que possible. La nouvelle interface utilisateur (IU) de la plate-forme Pocket PC nécessite un travail supplémentaire pour une application d'utiliser la zone d'écran entier.

Pour comprendre les commentaires dans les exemples de code dans l'article, les nouvelles conditions de l'interface utilisateur Pocket PC sont décrites :
  • La barre des tâches se trouve en haut de l'écran, affiche les légendes de l'application et fournit l'accès utilisateur pour démarrer des applications.
  • La barre de commandes, également connu sous la barre de menus est située dans la partie inférieure de l'écran.
  • Le bouton clavier SIP () se trouve sur la barre de commandes, le coin inférieur droit de l'écran.
Pour obtenir une fenêtre qui utilise autant que possible, l'application appelle SHFullScreen pour masquer ces éléments.

Remarque : pour que les boîtes de dialogue plein écran, si la boîte de dialogue contient des contrôles avec le jeu de style WS_TABSTOP, SHFullScreen ne masque pas le bouton SIP. Si vous remarquez que le SIP bouton inopinément ne peut pas être masqué, consultez les ressources de boîte de dialogue dans l'éditeur de ressources et affichez la boîte de dialogue Propriétés pour chacun des contrôles. Vérifiez que la case à cocher Arrêter l'onglet n'est pas activée pour tous les contrôles.

Pour une application Win32 simple qui utilise la fonction CreateWindow ou CreateWindowEx pour son interface utilisateur principale, un appel SHFullScreen pour masquer les éléments d'interface utilisateur imposant pour activer une couverture complète de plein écran, appelez la fonction ShowWindow pour masquer la barre de commandes de l'application et puis ajustez la taille de la fenêtre à l'aide de la fonction MoveWindow.

L'exemple de code ci-dessous illustre cette méthode. Ce code a été adapté de l'échantillon du Kit de développement SHAPI Win32 Pocket PC.
      #define MENU_HEIGHT 26
      RECT rc;

      //get window size
      GetWindowRect(hWnd, &rc);

      SHFullScreen(hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON);
      ShowWindow(hwndCB, SW_HIDE);

      MoveWindow(hWnd, 
		  rc.left, 
		  rc.top-MENU_HEIGHT, 
		  rc.right, 
		  rc.bottom+MENU_HEIGHT, 
		  TRUE);  
				
Remarque : Si vous souhaitez restaurer la taille d'origine de l'application, utilisez SHFS_SHOWTASKBAR et SHFS_SHOWSIPBUTTON. Toutefois, MoveWindow est appelée avec le paramètre bas deux fois MENU_HEIGHT a diminué. Par exemple :
      // Code to revert back to not full-screen:
      RECT rc;
      GetWindowRect(hWnd, &rc);
      SHFullScreen(hWnd, SHFS_SHOWTASKBAR | SHFS_SHOWSIPBUTTON);
      ShowWindow(hwndCB, SW_SHOW);
      MoveWindow(hWnd, 
         rc.left, 
         rc.top+MENU_HEIGHT, 
         rc.right, 
         rc.bottom-(2*MENU_HEIGHT), 
           TRUE);  
				
pour une boîte de dialogue application Win32, la fonction SHInitDialog est utilisée dans le Gestionnaire de WM_INITDIALOG. SHInitDialog est utilisée conjointement avec la fonction SHFullScreen pour masquer les éléments d'interface utilisateur et de parvenir à une boîte de dialogue de plein écran :
     case WM_INITDIALOG:

#define MENU_HEIGHT 26
      SHINITDLGINFO shidi;
      RECT rc;
  
      shidi.hDlg = hDlg;
      shidi.dwMask = SHIDIM_FLAGS;
      shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR;
  
      SHInitDialog(&shidi);

      GetWindowRect(hDlg, &rc);
      MoveWindow(hDlg, 
         rc.left, 
         rc.top-MENU_HEIGHT, 
         rc.right, 
         rc.bottom,
       TRUE);

      SetForegroundWindow(hDlg);
      SHFullScreen(hDlg, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON);
				
la liste suivante explique comment exécuter des tâches similaires à partir d'applications MFC. Il existe deux types principaux d'applications MFC pour Windows CE, basée sur des boîtes de dialogue et d'applications de prise en charge SDI ou de document/vue. Pour faire ce que Win32 SHAPI illustre la, vous devez accéder données membres de classes MFC.

L'exemple suivant illustre le processus pour un type de document/vue d'application. Ce code est un gestionnaire de commande par l'application en mode plein écran :
void CMainFrame::OnFullscreen() 
{
      #define MENU_HEIGHT 26
      RECT rc;

      //get window size
      GetWindowRect(&rc);

      ::SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON);
      ::ShowWindow(this->m_hCommandBar, SW_HIDE);

      MoveWindow(rc.left, 
		  rc.top-MENU_HEIGHT, 
		  rc.right, 
		  rc.bottom+MENU_HEIGHT, 
		  TRUE);	
}
				
si une boîte de dialogue doit s'afficher pour couvrir la totalité de l'écran, un code similaire est placé dans le gestionnaire OnInitDialog. Une différence est que l'infrastructure MFC pour PocketPC crée une barre de commandes vide dans CDialog qui doivent être masqués :
BOOL CMfctest2Dlg::OnInitDialog()
{
   m_bFullScreen = FALSE;
   CDialog::OnInitDialog();

   // Call SHInitDialog with flags for full screen.
   SHINITDLGINFO shidi;

   shidi.dwMask = SHIDIM_FLAGS;
   shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR;
   shidi.hDlg = m_hWnd;
   SHInitDialog(&shidi);

   // Set the icon for this dialog box. The framework does this automatically
   //  when the application's main window is not a dialog box.
   SetIcon(m_hIcon, TRUE);   // Set big icon.
   SetIcon(m_hIcon, FALSE);  // Set small icon.

// TODO: Add extra initialization here.
   ::CommandBar_Show(m_pWndEmptyCB->m_hWnd, FALSE);

   // SHFullScreen fails if dialog box is not foreground.
   SetForegroundWindow();  
   SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON);

   // Resize the window over the taskbar area.
#define MENU_HEIGHT 26
   RECT rect;
   GetWindowRect(&rect);
   rect.top -= MENU_HEIGHT;
   MoveWindow(&rect, TRUE);
	
   return TRUE;
}
				

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Keyboard sur le système suivant
    • Microsoft Windows CE Platform SDK for Pocket PC
Mots-clés : 
kbmt kbhowto KB266244 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 266244  (http://support.microsoft.com/kb/266244/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Retired KB ArticleExclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.