gpt4 book ai didi

c++ - 如何检测子窗口即时是否按下了ctrl键。 richedit 是焦点?

转载 作者:行者123 更新时间:2023-11-30 02:57:39 25 4
gpt4 key购买 nike

我注意到当控件处于焦点状态时按下 CTRL 键时 RichEdit 不会向父窗口发送消息。当父窗口处于事件状态时,一切正常。但是,当光标位于 RichEdit 中时,只有鼠标 0x20 WM_SETCURSOR 消息正常。当在没有控制键的情况下键入时按下一个键 0x111 WM_COMMAND 被发送,当我尝试按下 CTRL 并且在此期间任何其他键(如“S”)用于实现另存为功能时,没有发送任何内容。有没有办法创建对 RichEdit 的回调或以其他方式捕获 CTRL+S

Escape 也不向父窗口发送消息。

最佳答案

找到了如何设置对 richedit 的回调。

    DefEditProc = (WNDPROC)SetWindowLong(richeditWindow, GWL_WNDPROC, (long)&richEdit.EditKeyProc);

和之前的代码:

LRESULT EditKeyProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
if(uMsg == WM_KEYDOWN) {
if(wParam == 'S' && GetAsyncKeyState(VK_CONTROL));
return 0;
}
return CallWindowProc(DefEditProc, hwnd, uMsg, wParam, lParam);
}

关于c++ - 如何检测子窗口即时是否按下了ctrl键。 richedit 是焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com