codice:
ON_MESSAGE(WM_HOTKEY, &CTestSerialLibPDADlg::OnHotKey)
void CTestSerialLibPDADlg::SetKeys() {
SendMessage(SHCMBM_OVERRIDEKEY, VK_TTALK, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
SendMessage(SHCMBM_OVERRIDEKEY, VK_TEND, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
SendMessage(SHCMBM_OVERRIDEKEY, VK_TBACK, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
SendMessage(SHCMBM_OVERRIDEKEY, VK_THOME, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
SendMessage(SHCMBM_OVERRIDEKEY, VK_TPOWER, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
}
void CTestSerialLibPDADlg::RestoreKeys() {
SendMessage(SHCMBM_OVERRIDEKEY, VK_TTALK, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, 0));
SendMessage(SHCMBM_OVERRIDEKEY, VK_TEND, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, 0));
SendMessage(SHCMBM_OVERRIDEKEY, VK_TBACK, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, 0));
SendMessage(SHCMBM_OVERRIDEKEY, VK_THOME, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, 0));
SendMessage(SHCMBM_OVERRIDEKEY, VK_TPOWER, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, 0));
}
LRESULT CTestSerialLibPDADlg::OnHotKey(WPARAM wParam, LPARAM lParam) {
SendDlgItemMessage(IDC_LIST1, LB_RESETCONTENT, 0, 0));
switch (wParam) {
case 0:
SendDlgItemMessage(IDC_LIST1, LB_ADDSTRING, 0, (LPARAM) (LPCTSTR) L"TSOFT1 Pressed");
break;
default:
SendDlgItemMessage(IDC_LIST1, LB_ADDSTRING, 0, (LPARAM) (LPCTSTR) L"HotKey Pressed");
break;
}
UpdateWindow();
return 0;
}
Con l'idea di evitare che, premendo un tasto (tipo power o la chiamata) durante l'esecuzione dell'applicazione, venga eseguita la funzione del tasto medesimo.