Teclado en Pocket PC

04/07/2008 - 17:26 por Henry de Sousa | Informe spam
Hola amigos.

Bueno les cuento que estoy desarrollando una aplicación para Pocket PC con
VS2008 y c#.
Ya la tengo casi lista, aunque necesito lograr algo que he visto en otras
aplicaciones, a ciencia cierta no sé como hacerlo.

Digamos que tengo un formulario, en él hay algunas cajas de texto, cuando me
paro en una caja de texto para escribir sobre
ella tengo que darle un click -o un tap creo se dice en las PPC- sobre el
keyboard o teclado de la PPC para poder comenzar
a escribir sobre la caja de texto, yo he visto que en algunas aplicaciones
que vienen ya preinstaladas en la PPC, al colocarme
sobre una caja de texto automáticamente aparece en pantalla el teclado para
poder comenzar a escribir, es decir no tengo necesidad
de darle un click al teclado con el stylus para que aparezca sino que el
teclado aparece y desaparece automáticamente cuando
estoy o no sobre una caja de texto.

Me gustaría lograr esta característica para la aplicación pero la verdad no
he encontrado mucho en internet.

Espero que me haya explicado bien.

Saludos amigos...
 

Leer las respuestas

#1 Fernando Gómez
04/07/2008 - 23:56 | Informe spam
Henry de Sousa wrote:
Hola amigos.

Bueno les cuento que estoy desarrollando una aplicación para Pocket PC con
VS2008 y c#.
Ya la tengo casi lista, aunque necesito lograr algo que he visto en otras
aplicaciones, a ciencia cierta no sé como hacerlo.

Digamos que tengo un formulario, en él hay algunas cajas de texto, cuando me
paro en una caja de texto para escribir sobre
ella tengo que darle un click -o un tap creo se dice en las PPC- sobre el
keyboard o teclado de la PPC para poder comenzar
a escribir sobre la caja de texto, yo he visto que en algunas aplicaciones
que vienen ya preinstaladas en la PPC, al colocarme
sobre una caja de texto automáticamente aparece en pantalla el teclado para
poder comenzar a escribir, es decir no tengo necesidad
de darle un click al teclado con el stylus para que aparezca sino que el
teclado aparece y desaparece automáticamente cuando
estoy o no sobre una caja de texto.

Me gustaría lograr esta característica para la aplicación pero la verdad no
he encontrado mucho en internet.

Espero que me haya explicado bien.

Saludos amigos...



Hola,

el API de Windows CE (desde la versión 3.0, me parece) ofrece una
función llamada SipShowIM cuyos parámetros son SIPF_OFF, SIPF_ON,
SIPF_DOCKED, SIPF_LOCKED (banderas equivalentes a 0x0, 0x1, 0x02 y 0x4).
Lo que yo hago en C (C++ en realidad, gracias al ABI que tiene con C) es
capturar el mensaje WM_SETFOCUS y mandar llamar a esta función SipShowIM.

En fin, C# también ofrece un ABI con C, así que deberías poder mandar
llamar esta función sin problemas. Me imagino que sería algo como:

class SipKeyboard
{
public static const ulong SIPF_OFF = 0;
public static const ulong SIPF_ON = 1;
public static const ulong SIPF_DOCKED = 2;
public static const ulong SIPF_LOCKED = 4;

[DllImport("Coresip.dll", CharSet = CharSet.Auto)]
public static extern int SipShowIM(ulong dwFlags);
}

Y luego la podrías emplear como:

SipKeyboard.SipShowIM(SipKeyboard.SIPF_ON | SipKeyboard.SIPF_DOCKED);

etcétera.

Más información sobre SipShowIM aquí:
http://msdn.microsoft.com/en-us/lib...41818.aspx

Saludos.

Preguntas similares