Pergunta

Estou desenvolvendo uma aplicação para PocketPC. Quando o aplicativo é iniciado o SetScreenOrientation função personalizada (270) é chamado, que gira a tela. Quando a aplicação fecha a função SetScreenOrientation (0) é chamado, que restaura a orientação da tela.

Desta forma, a orientação da tela não é restaurada se o utilizador minimiza a aplicação e esta não é aceitável.

Alguém sabe onde (em que os manipuladores de eventos) deve SetScreenOrientation (int ângulo) ser chamado para definir a orientação do ecrã no arranque da aplicação, restaurar orientação sobre minimizar, definir a orientação em maximizar e restaurar a orientação de perto?

Na verdade, eu não sei qual evento alças manipulador o Minimizar e eventos Maximizar.

Foi útil?

Solução

A mensagem correta é WM_SIZE , mas de Daemin pontos resposta a o tópico WM_SIZE ajuda errado. Verifique o wParam. Tenha cuidado, pois sua janela pode ser maximizada mas escondido.

Outras dicas

Indo de minha experiência Windows CE você deve lidar com tanto o WM_SIZE ou WM_WINDOWPOSCHANGED mensagens. Se você está trabalhando em PocketPC eu sugiro que você dê uma olhada na mensagem WM_WINDOWPOSCHANGED primeiro porque eu não tenho certeza que o WM_SIZE tem os parâmetros corretos que você precisa.

A partir WINDOWPOS estrutura da mensagem WM_WINDOWPOSCHANGED dar uma olhada na bandeiras membro, especificamente SWP_SHOWWINDOW e SWP_HIDEWINDOW.


A versão específica das mensagens que você precisa olhar para variar de acordo com o sistema operacional que você está usando. O Pocket PC OS é construído em Windows CE 3.0 (e inferior), enquanto o Windows Mobile está agora construída sobre o Windows CE 5.0 (até mesmo o Windows Mobile 6), mas também foi construída sobre Windows CE 4. (Fonte)

Então, basta olhar sob a seção relevante no MSDN para o sistema operacional que você está escrevendo para.

Eu não sei o que estes são chamados no C ++ mundo, mas em .NET Compact Framework evento de redimensionamento do seu formulário de candidatura seria chamado quando você minimizar / maximizar uma janela, e, em seguida, o código de evento que você iria verificar o WindowState propriedade do formulário para ver se a sua minimizados ou mazimized.

A alteração do estado do seu PDA dentro de sua aplicação é arriscado (embora há muitas boas razões para fazê-lo), porque se o seu aplicativo trava ele vai deixar o PDA em qualquer estado em que estava. Eu fiz um monte de quiosque-tipo (full-screen) Apps no Windows mobile, e um dos truques para fazer isso de forma eficaz é para esconder a barra de título WM (a linha superior com o botão Iniciar do Windows) para mantê-lo de piscar-se por uma fração segundo cada vez que você abrir um novo formulário. Se o aplicativo falhar, os restos janelas de barras invisíveis até que você reiniciar o dispositivo, o que não é bom. Pelo menos com rotação da tela o usuário pode restaurá-lo manualmente.

Ela realmente depende da plataforma, mas eu iria com WM_WINDOWPOSCHANGED ou o OnShow. Não é WM_SIZE .. Isso não é sempre jogado em todas as plataformas. da Casio não jogue o evento tamanho quando você espera que eles. TDS e fazer da Symbol.

Mesmo que o MSDN é um grande sourse de informações, não me lembro de todos os do OS são criados iguais. No mundo PPC o provedor de hardware começa a criar o seu próprio sistema operacional e às vezes as coisas perder, ou purposfully ignorar as coisas.

Eu tenho uma plataforma aqui (nome omitido para proteger ... bem me) que tem botões esquerdo e direito .. Quando você pressioná-los, você esperaria ser capaz de capturar VK_LEFT, VK_RIGHT .. Você' estaria errado. Você realmente obter ';' ou ':'. Como é que para um pontapé nas calças.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top