У меня есть элемент управления выпадающего списка в моем диалоге MFC.
В этом списке будет почти все сообщения Windows. Будучи так много, пользователь найдет их сложнее. Поэтому я хочу, чтобы, когда пользователь щелкнул правой кнопкой мыши на раскрывающемся списке, открылось окно с некоторыми элементами поиска.
Я не знаю точно, как сделать событие правой кнопкой мыши.
Это мой код файла .rc:
COMBOBOX IDC_WM,98,7,152,30,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
Я пробовал использовать пункт «Создать обработчик событий» в Visual Studio, но не нашел событие, вызываемое правой кнопкой мыши.
Кто-нибудь может мне помочь?
В вашем диалоге, который является родительским для переопределения комбинированного списка PreTranslateMessage.
Добавьте следующий код:
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_RBUTTONUP)
{
if(pMsg->hwnd == m_myCombobox.GetSafeHwnd())
{
// do advanced search here
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
Других решений пока нет …