Здравствуйте, у меня есть проблема, связанная с использованием диалогового окна с поддержкой растрового изображения. Я создал раскладку типа клавиатуры и хочу также получить ввод с клавиатуры. Когда я использую мышь, я могу получить кнопку(s), а также все кнопки работают нормально - другие изображения 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));
но, похоже, они не дают эффекта нажатой кнопки, хотя внутренне они работают. Может кто-нибудь, пожалуйста, помогите мне с этим
Спасибо и с уважением Sayonee
Свернуть
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);
}