Salut � tous,
Pour les besoins d'une application je dois r�aliser un clavier virtuel, dans le style de celui pr�sent dans Windows.
J'ai donc dans mon appli une page avec un TEdit. Dans l'�v�nement "OnEnter" de ce TEdit, j'appelle ma fiche "Clavier", qui passe donc en premier plan. Sur cette fiche clavier je clique sur le bouton "A", je fais pass� ma premi�re fiche en premier plan, j'envoie l'�v�nement clavier correspondant � la touche "A" et le caract�re "A" s'affiche dans mon Edit.
Jusque la donc tous va bien.
Mais ensuite j'aimerais que mon clavier reste en premier plan pour saisir la deuxi�me lettre, mais impossible de faire �a.
Voici mon code :
Le clavier passe en premier plan et j'appuie sur "A"
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 Appel de mon clavier à partir de la première fiche : void __fastcall TForm1::Edit1Enter(TObject *Sender) { //hFenetre est de type HWND, c'est le handle de ma fiche qui contient le edit FClavierVirtuel->hFenetre = GetForegroundWindow(); FClavierVirtuel->Show(); }
C'est cette ligne qui me pose souci "SetForegroundWindow(hClavier);". Sans elle le clavier fonctionne mais apr�s un clic il reste derri�re. Si je met cette ligne pour faire passer ma fen�tre "Clavier" devant �a ne marche plus.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 void __fastcall TFClavierVirtuel::AClick(TObject *Sender) { HWND hClavier = GetForegroundWindow(); SetForegroundWindow(hFenetre); Sleep(50); keybd_event('A',0x29,0,0);// Simulation appuie a keybd_event('A',0x29,KEYEVENTF_KEYUP,0);//Relache a Sleep(50); //SetForegroundWindow(hClavier); }
Avez vous une petite id�e ??
Merci d'avance
Partager