MFC软键盘使用微软拼音无法连打

凡凡1990 2019-08-19 03:20:22
同样的代码,在最新的win10中无法使用微软拼音连续输入

win10 版本1607,Build:14393 (可以连打)


win10 版本1903,Build:18362 (无法连打)


点击字母按键的代码:输入a,那么参数就是65
	

InputSoftKey(65);

void InputSoftKey(WORD wVk)
{
CEdit* pBtn = (CEdit*)GetDlgItem(IDC_EDIT1);
pBtn->SetFocus();
keybd_event(wVk, MapVirtualKey(0x41, 0), 0, 0);
keybd_event(wVk, MapVirtualKey(0x41, 0), KEYEVENTF_KEYUP, 0);
}

开发工具 VS2017 MFC

是否跟微软拼音有关?

或者类似在程序内实现软键盘输入的项目链接给我参考一下,谢谢。
...全文
233 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2019-08-27
  • 打赏
  • 举报
回复

void SimKey(char chKey)
{
  HKL hKL = GetKeyboardLayout(GetCurrentThreadId());
  BYTE bScan = (BYTE)MapVirtualKeyEx(chKey, MAPVK_VK_TO_VSC, hKL);
  keybd_event(chKey, bScan, 0, NULL);
  keybd_event(chKey, bScan, KEYEVENTF_KEYUP, NULL);
}

void CDlg1Dlg::OnBnClickedButton1()
{
  // TODO: 在此添加控件通知处理程序代码

  GetDlgItem(IDC_EDIT1)->SetFocus();
  SimKey('W');
  SimKey('O');
  SimKey('D');
  SimKey('E');
  SimKey('Z');
  SimKey('U');
  SimKey('G');
  SimKey('U');
  SimKey('O');

}

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧