ID do artigo: 266244 - Última revisão: sexta-feira, 19 de agosto de 2005 - Revisão: 4.2

Como criar aplicativos de tela inteira para o Pocket PC

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sumário

A documentação claramente descreve como usar SHFullScreen API em um aplicativo do Win32 não - Microsoft Foundation Class MFC para criar janelas de tela inteira no Pocket PC. No entanto, a documentação não descreve o mesmo procedimento para aplicativos baseados em MFC. Este artigo descreve como criar aplicativos filtrada completo para o Pocket PC usando a API do Win32 ou MFC.

Mais Informações

Para aplicativos que se destinam a Windows CE, ele se tornou popular para usar como grande parte da tela dos dispositivos de menores porte Palm possível. A nova interface de usuário (UI) da plataforma Pocket PC requer trabalho adicional para um aplicativo para usar a área de tela inteira.

Para entender os comentários nos exemplos de código no artigo, são descritos os novos termos UI de Pocket PC:
  • A barra de tarefas está localizada na parte superior da tela, exibe legendas de aplicativo e fornece o acesso de usuário para iniciar aplicativos.
  • Barra de comando, também conhecido como a barra de menus está localizada na parte inferior da tela.
  • O botão soft input panel (SIP) está localizado na barra de comando, para o canto inferior direito da tela.
Para obter uma janela que usa tela quanto possível, o aplicativo chama SHFullScreen para ocultar esses elementos.

Observação : para criar caixas de diálogo full-screen, se a caixa de diálogo tiver quaisquer controles com o conjunto de estilo WS_TABSTOP, SHFullScreen não ocultará o botão SIP. Se você perceber que o botão SIP inesperadamente não pode ser oculto, consulte os recursos de caixa de diálogo no editor de recursos e exibir a caixa de diálogo de propriedades para cada um dos controles. Verifique se a caixa de seleção Parar de guia não está selecionada para todos os controles.

Para um aplicativo Win32 simples que usa a função CreateWindow ou CreateWindowEx para sua interface do usuário principal, chamada SHFullScreen para ocultar os elementos de interface do usuário imposição para ativar cobertura completa de tela inteira, chamar a função ShowWindow para ocultar a barra de comando do aplicativo e, em seguida, ajuste o tamanho da janela, usando a função MoveWindow .

O código de exemplo abaixo ilustra esse método. Esse código foi adaptado do exemplo SHAPI Win32 Pocket PC SDK.
      #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);  
				
Observação : se você deseja restaurar o tamanho original do aplicativo, use SHFS_SHOWTASKBAR e SHFS_SHOWSIPBUTTON . No entanto, MoveWindow é chamado com o parâmetro inferior reduzido por duas vezes MENU_HEIGHT . Por exemplo:
      // 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);  
				
para uma caixa de diálogo do aplicativo Win32, a função SHInitDialog é usada no manipulador para WM_INITDIALOG . SHInitDialog é usado em conjunto com a função SHFullScreen para ocultar os elementos de interface do usuário e obter uma caixa de diálogo full-screen:
     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);
				
a seguir descreve como realizar tarefas semelhantes de dentro de aplicativos MFC. Há dois tipos principais de aplicativos MFC para Windows CE, baseado em diálogo e SDI ou documento/exibir aplicativos de suporte. Para fazer o que o exemplo de Win32 SHAPI demonstra, você deve acessar membros de dados de classes MFC.

O seguinte ilustra o processo de um tipo de documento/exibição do aplicativo. Esse código é para um manipulador de comando que colocará o aplicativo no modo de tela inteira:
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);	
}
				
se for uma caixa de diálogo a ser exibido para cobrir a tela inteira, o código semelhante é colocado no manipulador de OnInitDialog . Uma diferença é que a estrutura do MFC para Pocket PC cria uma barra de comando vazia no CDialog que deve ser ocultos:
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;
}
				

A informação contida neste artigo aplica-se a:
  • Microsoft Office Keyboard nas seguintes plataformas
    • Microsoft Windows CE Platform SDK for Pocket PC
Palavras-chave: 
kbmt kbhowto KB266244 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 266244  (http://support.microsoft.com/kb/266244/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.