Bonjour à tous,
Dans un sousi de rendre mon code le plus lisible possible j'aimerais savoir s'il n'y à pas une façons plus charmante, plus courte de coder la detection d'une touche : (Je vous épargne les déclarations etc...)
//J'ai créer 2 dialog box et mon but est de detecter quand j'appui sur entrée dans quelle dialogbox je me trouvehDlg = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);
hDlg2 = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG2), NULL, DialogProc2);
while (GetMessage(&msg, NULL, 0, 0))
{
if (hDlg || IsDialogMessage(hDlg, &msg))
{
//Detecte l'appui sur la touche entrée if (msg.message==WM_KEYDOWN && msg.wParam==VK_RETURN){
msg.message=WM_COMMAND;
msg.wParam=IDC_BUTTON1;
//La touche entrée simule l'appui sur bouton if (msg.hwnd==GetDlgItem(
hDlg,
IDC_EDIT1))
//Si je suis dans la dialog box 1 msg.hwnd=hDlg;
if (msg.hwnd==GetDlgItem(
hDlg2,
IDC_EDIT1))
//Si je suis dans la dialog box 2 msg.hwnd=hDlg2;
if (msg.hwnd==GetDlgItem(
hDlg2,
IDC_EDIT2))
//.... msg.hwnd=hDlg2;
//Je réalise le traitement normal des messages pour réaliser le traitement qui a dans IDC_BUTTON1 TranslateMessage(&msg);
DispatchMessage(&msg);
//Pareil quand j'appui sur tab je regarde
dans quelle dialog box je me trouve et si je suis dans la 2ème alors je
change de case ! }else if (msg.message==WM_KEYDOWN && msg.wParam==VK_TAB){
if (msg.hwnd==GetDlgItem(
hDlg2,
IDC_EDIT1))
PostMessage(hDlg2, WM_NEXTDLGCTL, 0, 0);
//ctrl suivant if (msg.hwnd==GetDlgItem(
hDlg2,
IDC_EDIT2))
PostMessage(hDlg2, WM_NEXTDLGCTL, 1, 0);
//ctrl précédent }else{
//Je réalise le traitement normal des messages dans les autres cas TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
Merci d'avance de votre aide !