Buona sera a tutti.
Sono un nuovo iscritto programmatore principiante , scrivo generalmente moduli aggiuntivi (dll) per applicazioni e programmini per micro controllori.
Ho un problema con un modulo dll che visualizza un menu in una finestra e prende l'input dalla tastiera tipo 0 , 1 , 2 , 3 , 4 .
il modulo viene eseguito quando inserisco l'oggetto ad esso associato nell'applicazione.
Se inserisco un solo modulo funziona bene ma se ne inserisco 2 o più l'input e l'output funzionano solo nel primo inserito.
Per l'output ho più o meno risolto cosi:
hwnd = GetForegroundWindow();
TextOut(GetDC(hwnd), 20, 20, L"Topolino", strlen("Topolino"));
e scrive nella finestra selezionata.
Ma per l'input non so come fare il tasto premuto viene intercettato solo dal primo modulo inserito ma io vorrei andasse al modulo con la finestra
in primo piano.
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
if (KEYDOWN(0x31) || KEYDOWN(0x61)) {
while (!KEYUP(0x31) || !KEYUP(0x61));
TextOut(GetDC(hwnd), 40, 20, L"Pippo", strlen("Pippo"));
// Qui vorrei che il modulo con la finestra in primo piano facesse una determinata cosa
// ma questa if entra sempre nel primo modulo inserito
fflush(stdin);
}
molte grazie
e saluti a tutti