Qt使用Windows Api模拟键盘事件 --- Qt Key To Windows Key

int MainWindow::qtKeyToWinKeyCode(Qt::Key qtKey)
{
    switch (qtKey) {
    case Qt::Key_Escape:
        return VK_ESCAPE;
    case Qt::Key_Tab:
        return VK_TAB;
    case Qt::Key_Backtab:
        return VK_BACK;
    case Qt::Key_Backspace:
        return VK_BACK;
    case Qt::Key_Return:
    case Qt::Key_Enter:
        return VK_RETURN;
    case Qt::Key_Insert:
        return VK_INSERT;
    case Qt::Key_Delete:
        return VK_DELETE;
    case Qt::Key_Pause:
        return VK_PAUSE;
    case Qt::Key_Print:
        return VK_PRINT;
    case Qt::Key_SysReq:
        return VK_SNAPSHOT;
    case Qt::Key_Clear:
        return VK_CLEAR;
    case Qt::Key_Home:
        return VK_HOME;
    case Qt::Key_End:
        return VK_END;
    case Qt::Key_Left:
        return VK_LEFT;
    case Qt::Key_Up:
        return VK_UP;
    case Qt::Key_Right:
        return VK_RIGHT;
    case Qt::Key_Down:
        return VK_DOWN;
    case Qt::Key_PageUp:
        return VK_PRIOR;
    case Qt::Key_PageDown:
        return VK_NEXT;
    case Qt::Key_Shift:
        return VK_SHIFT;
    case Qt::Key_Control:
        return VK_CONTROL;
    case Qt::Key_Meta:
        return VK_LWIN; // Assuming left Windows key
    case Qt::Key_Alt:
        return VK_MENU;
    case Qt::Key_CapsLock:
        return VK_CAPITAL;
    case Qt::Key_NumLock:
        return VK_NUMLOCK;
    case Qt::Key_ScrollLock:
        return VK_SCROLL;
    case Qt::Key_F1:
        return VK_F1;
    case Qt::Key_F2:
        return VK_F2;
    case Qt::Key_F3:
        return VK_F3;
    case Qt::Key_F4:
        return VK_F4;
    case Qt::Key_F5:
        return VK_F5;
    case Qt::Key_F6:
        return VK_F6;
    case Qt::Key_F7:
        return VK_F7;
    case Qt::Key_F8:
        return VK_F8;
    case Qt::Key_F9:
        return VK_F9;
    case Qt::Key_F10:
        return VK_F10;
    case Qt::Key_F11:
        return VK_F11;
    case Qt::Key_F12:
        return VK_F12;
    case Qt::Key_F13:
        return VK_F13;
    case Qt::Key_F14:
        return VK_F14;
    case Qt::Key_F15:
        return VK_F15;
    case Qt::Key_F16:
        return VK_F16;
    case Qt::Key_F17:
        return VK_F17;
    case Qt::Key_F18:
        return VK_F18;
    case Qt::Key_F19:
        return VK_F19;
    case Qt::Key_F20:
        return VK_F20;
    case Qt::Key_F21:
        return VK_F21;
    case Qt::Key_F22:
        return VK_F22;
    case Qt::Key_F23:
        return VK_F23;
    case Qt::Key_F24:
        return VK_F24;
    case Qt::Key_Space:
        return VK_SPACE;
    case Qt::Key_Exclam:
        return '1'; // ! 键
    case Qt::Key_QuoteDbl:
        return VK_OEM_7; // " 键
    case Qt::Key_At:
        return '2'; // @ 键
    case Qt::Key_NumberSign:
        return '3'; // # 键
    case Qt::Key_Dollar:
        return '4'; // $ 键
    case Qt::Key_Percent:
        return '5'; // % 键
    case Qt::Key_AsciiCircum:
        return '6'; // ^ 键
    case Qt::Key_Ampersand:
        return '7'; // & 键
    case Qt::Key_Apostrophe:
        return VK_OEM_7; // ' 键
    case Qt::Key_ParenLeft:
        return '9'; // ( 键
    case Qt::Key_ParenRight:
        return '0'; // ) 键
    case Qt::Key_Asterisk:
        return VK_MULTIPLY; // * 键
    case Qt::Key_Plus:
        return VK_OEM_PLUS; // + 键
    case Qt::Key_Comma:
        return VK_OEM_COMMA; // , 键
    case Qt::Key_Minus:
        return VK_OEM_MINUS; // - 键
    case Qt::Key_Period:
        return VK_OEM_PERIOD; // . 键
    case Qt::Key_Slash:
        return VK_OEM_2; // / 键
    case Qt::Key_Colon:
        return VK_OEM_1; // : 键
    case Qt::Key_Semicolon:
        return VK_OEM_1; // ; 键
    case Qt::Key_Less:
        return VK_OEM_COMMA; // < 键
    case Qt::Key_Equal:
        return VK_OEM_PLUS; // = 键
    case Qt::Key_Greater:
        return VK_OEM_PERIOD; // > 键
    case Qt::Key_Question:
        return VK_OEM_2; // ? 键
    case Qt::Key_BracketLeft:
        return VK_OEM_4; // [ 键
    case Qt::Key_Backslash:
        return VK_OEM_5; // \ 键
    case Qt::Key_BracketRight:
        return VK_OEM_6; // ] 键
    case Qt::Key_Underscore:
        return VK_OEM_MINUS; // _ 键
    case Qt::Key_QuoteLeft:
        return VK_OEM_3; // ` 键
    case Qt::Key_BraceLeft:
        return VK_OEM_4; // { 键
    case Qt::Key_Bar:
        return VK_OEM_5; // | 键
    case Qt::Key_BraceRight:
        return VK_OEM_6; // } 键
    case Qt::Key_AsciiTilde:
        return VK_OEM_3; // ~ 键
    case Qt::Key_0:
        return VK_NUMPAD0;
    case Qt::Key_1:
        return VK_NUMPAD1;
    case Qt::Key_2:
        return VK_NUMPAD2;
    case Qt::Key_3:
        return VK_NUMPAD3;
    case Qt::Key_4:
        return VK_NUMPAD4;
    case Qt::Key_5:
        return VK_NUMPAD5;
    case Qt::Key_6:
        return VK_NUMPAD6;
    case Qt::Key_7:
        return VK_NUMPAD7;
    case Qt::Key_8:
        return VK_NUMPAD8;
    case Qt::Key_9:
        return VK_NUMPAD9;
    case Qt::Key_A:
        return 'A';
    case Qt::Key_B:
        return 'B';
    case Qt::Key_C:
        return 'C';
    case Qt::Key_D:
        return 'D';
    case Qt::Key_E:
        return 'E';
    case Qt::Key_F:
        return 'F';
    case Qt::Key_G:
        return 'G';
    case Qt::Key_H:
        return 'H';
    case Qt::Key_I:
        return 'I';
    case Qt::Key_J:
        return 'J';
    case Qt::Key_K:
        return 'K';
    case Qt::Key_L:
        return 'L';
    case Qt::Key_M:
        return 'M';
    case Qt::Key_N:
        return 'N';
    case Qt::Key_O:
        return 'O';
    case Qt::Key_P:
        return 'P';
    case Qt::Key_Q:
        return 'Q';
    case Qt::Key_R:
        return 'R';
    case Qt::Key_S:
        return 'S';
    case Qt::Key_T:
        return 'T';
    case Qt::Key_U:
        return 'U';
    case Qt::Key_V:
        return 'V';
    case Qt::Key_W:
        return 'W';
    case Qt::Key_X:
        return 'X';
    case Qt::Key_Y:
        return 'Y';
    case Qt::Key_Z:
        return 'Z';
        // 其他特殊键
    case Qt::Key_AltGr:
        return VK_RMENU; // 右Alt键
    case Qt::Key_Back:
        return VK_BROWSER_BACK;
    case Qt::Key_Forward:
        return VK_BROWSER_FORWARD;
    case Qt::Key_Refresh:
        return VK_BROWSER_REFRESH;
    case Qt::Key_Stop:
        return VK_BROWSER_STOP;
    case Qt::Key_Search:
        return VK_BROWSER_SEARCH;
    case Qt::Key_Favorites:
        return VK_BROWSER_FAVORITES;
    case Qt::Key_HomePage:
        return VK_BROWSER_HOME;
    case Qt::Key_LaunchMail:
        return VK_LAUNCH_MAIL;
    case Qt::Key_LaunchMedia:
        return VK_LAUNCH_MEDIA_SELECT;
    case Qt::Key_Launch0:
        return VK_LAUNCH_APP1;
    case Qt::Key_Launch1:
        return VK_LAUNCH_APP2;
    case Qt::Key_VolumeDown:
        return VK_VOLUME_DOWN;
    case Qt::Key_VolumeMute:
        return VK_VOLUME_MUTE;
    case Qt::Key_VolumeUp:
        return VK_VOLUME_UP;
    case Qt::Key_MediaPlay:
        return VK_MEDIA_PLAY_PAUSE;
    case Qt::Key_MediaStop:
        return VK_MEDIA_STOP;
    case Qt::Key_MediaPrevious:
        return VK_MEDIA_PREV_TRACK;
    case Qt::Key_MediaNext:
        return VK_MEDIA_NEXT_TRACK;
    default:
        return 0; // 返回0表示未知的键值
    }

}

QT的按键键值转换成windowsAPI中的按键键值。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值