Здравствуйте, у меня проблема, связанная с использованием диалогового окна с включенным растровым изображением. Я создал раскладку типа клавиатуры и хочу также получать ввод с клавиатуры. Когда я использую мышь, я могу получить кнопки (кнопки) нажаты, а также все кнопки работают нормально - другие изображения DEFAULT,SELECTED,DISABLED
.. все загружаются и работают, так как я использую функцию здесь m_BtnBtn1Ctrl.LoadBitmaps
, но тогда любая клавиша, нажатая на клавиатуре, и соответствующий символ на экране не могут сделать так же, как я смог сделать это, щелкнув мышью (и используя функцию Loadbitmaps()
).
Я использую эти 3 функции для достижения того же действия и эффекта, что и при использовании мыши
LoadBitmap()
SetBitmap()
Invalidate()
Я также пробовал этот кусок кода
HBITMAP hbm = (HBITMAP)LoadImage(NULL, "\\res\\Selected\\bitmap21.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
а также
bitmap.Attach((HBITMAP)LoadImage(NULL, "\\res\\Selected\\bitmap21.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION));
но они, похоже, не дают эффекта нажатой кнопки, хотя внутри они работают. Может кто-нибудь, пожалуйста, помогите мне с этим
Спасибо и с уважением Сайони
Крах
BOOL KeyBoard_press::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
CString strTemp;
if (pMsg->message == WM_KEYDOWN)
{
if ( pMsg->wParam == 0x41 || pMsg->wParam == 0x61) //check for both 'a' and 'A'
OnBtnBtn1();
if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_DELETE ||
pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_TAB ||
pMsg->wParam == VK_UP || pMsg->wParam == VK_DOWN || GetKeyState (VK_CONTROL))
{
::TranslateMessage (pMsg);
::DispatchMessage (pMsg);
return TRUE; // DO NOT process further
}
}
return CDialog::PreTranslateMessage(pMsg);
}