Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:dx:dinput [2008/04/26 17:11] 127.0.0.1 editor externo |
fw:dx:dinput [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 33: | Línea 33: | ||
| MSGBOX("Error al crear el objeto DInput"); | MSGBOX("Error al crear el objeto DInput"); | ||
| </code> | </code> | ||
| + | |||
| + | |||
| Línea 63: | Línea 65: | ||
| * Y si el dispositivo es un keyboard también podemos indicar que se desactive la tecla de windows pasándole otra flag: //DISCL_NOWINKEY// (en combinación con //DISCL_NONEXCLUSIVE//). \\ | * Y si el dispositivo es un keyboard también podemos indicar que se desactive la tecla de windows pasándole otra flag: //DISCL_NOWINKEY// (en combinación con //DISCL_NONEXCLUSIVE//). \\ | ||
| Básicamente con esto indicas si se seguirá el dispositivo cuando deje de estar en primer plano (foreground) o no; y si será exclusivo (que bloqueará el dispositivo para si mismo) o no. Podemos utilizar la siguiente combinación: | Básicamente con esto indicas si se seguirá el dispositivo cuando deje de estar en primer plano (foreground) o no; y si será exclusivo (que bloqueará el dispositivo para si mismo) o no. Podemos utilizar la siguiente combinación: | ||
| - | * Para el teclado\ratón: //DISCL_FOREGROUND | DISCL_NONEXCLUSIVE// | + | * Para el teclado\ratón: //DISCL_FOREGROUND | DISCL_NONEXCLUSIVE//. Esta modalidad tiene el problema que cuando se puerde el foco de la ventana tendrás que volver a adquirir el dispositivo, en [[id=fw:dx:dinput#notas|notas]] tienes un ejemplo de como podría hacerse. |
| - | * Para el ratón si queremos manejar nosotros el cursor de windows (que desaparecerá): //DISCL_EXCLUSIVE | DISCL_FOREGROUND// | + | * Para el ratón, si queremos manejar nosotros el cursor de windows (que desaparecerá): //DISCL_EXCLUSIVE | DISCL_FOREGROUND// |
| === Adquirir el dispositivo === | === Adquirir el dispositivo === | ||
| Línea 151: | Línea 153: | ||
| ... | ... | ||
| </code> | </code> | ||
| + | |||
| ===== Notas ===== | ===== Notas ===== | ||
| Línea 158: | Línea 161: | ||
| MSGBOX("Error al crear el objeto DInput"); | MSGBOX("Error al crear el objeto DInput"); | ||
| </code> | </code> | ||
| + | * Para volver a adquirir el dispositivo si se pierde el foco... | ||
| + | <code cpp> | ||
| + | byte buffer[256]; | ||
| + | HRESULT hr = this->keyb->GetDeviceState(sizeof(buffer), (LPVOID)&buffer); | ||
| + | if (hr == DI_OK) | ||
| + | return KEYDOWN(buffer, key); | ||
| + | this->keyb->Acquire(); | ||
| + | </code> | ||