草庐IT

windows - 从 Windows 应用商店应用程序中的 keydown 事件调用时,execCommand 不会触发

我正在编写一个Windows应用商店应用(HTML),其中包含一些简单的富文本编辑功能。我可以使用触发document.execCommand("bold",false,null);的按钮将粗体应用于当前选择但是,当我将其绑定(bind)到CTRL+B之类的按键事件时,什么也没有发生。这是我的按键代码。document.addEventListener("keydown",catchShortCuts,false);functioncatchShortCuts(e){if(e.ctrlKey){if(e.keyCode==66)//bdocument.execCommand('bold

windows - 在 WinRT 应用程序中检测击键

我有一个包含Canvas和一些按钮的基本页面模板。Canvas有一些动画正在进行。我也想在此页面上检测击键。我在LayoutRootGrid上使用了KeyDown事件,它以前可以工作,但是当我进一步构建应用程序时它停止工作了。我也尝试在PageRoot中使用KeyDown事件,但仍然无效。我正在粘贴下面的XAML。Hits 最佳答案 可以在NavigatedTo事件中订阅Window.Current.CoreWindow.KeyDown/Up,在NavigatedFrom中取消订阅。这些应该工作。否则,具有焦点的控件将有机会处理这些

windows - 在 WM_KEYDOWN 中获取 Unicode 字符

在我需要以不同方式处理大量键的应用程序中,我想在WM_KEYDOWN中处理所有情况,而根本不使用WM_CHAR。是否可以从一系列WM_KEYDOWN提供的虚拟键中获取正确的ASCII/UNICODE字符,而不是依赖于更常规的TranslateMsg/WM_CHAR?举个例子:应用程序应该能够以完全不同的方式处理Shift-B,而不是按常规的B或CTRL-B。使用MapVirtualKey,您不会使用Shift、Control和Alt键的状态,或者至少我看不到。正如LeoDavidson回答的那样:您可以使用ToUnicode调用自己执行VK->Unicode转换。

c# - C# 程序集中是否定义了 WM_KEYDOWN 常量?

我将在C#程序中使用WM_KEYDOWN和其他WM_消息。这些常量是在某处定义还是应该在每个程序中手动定义? 最佳答案 因为这些常量是在winapi库而不是.net中定义的,所以您需要自己在某个地方重新创建它们。使用这些常量的函数也在winapi中定义,因此您需要使用互操作才能在您的应用程序中使用它们。http://www.pinvoke.net/是对这些winapi常量和函数的互操作版本进行原型(prototype)设计的好资源。 关于c#-C#程序集中是否定义了WM_KEYDOWN常

c# - 在 ToolStripMenuItem 中捕获 mouseClick 和 KeyDown 事件

我在MDI父窗体中有一个菜单条,其中存在剪切、复制、粘贴工具条菜单项。我想在ToolStripMenuItem中捕获keydown和mouseClick(左)事件 最佳答案 对于工具条上的每个项目,您都需要一个监听器。像这样:AddHandlermenu_item_logout.Click,AddressOflogout然后你需要一个子程序来处理这样的事件:PrivateSublogout()'dosomethinghereEndSub至于键盘,你需要监听击键然后像这样处理:AddHandlerfirst_name_box.KeyD

c++ - 如何将 WM_KEYDOWN 消息传递给 IWebBrowser2 实例?

我正在使用IWebBrowser2接口(interface)在父应用程序中加载嵌入式浏览器。我的代码被编译为dll,即浏览器组件在运行时通过插件接口(interface)动态加载。我遇到的问题是加载我的dll的应用程序捕获某些按键消息,因此它们没有到达我的IWebBrowser2实例。因此,我在我的dll中使用SetWindowsHookEx()API捕获这些消息。然后我如何将WM_KEYDOWN或WM_CHAR消息转发到我的IWebBrowser2实例,以便它们可以,例如用于在浏览器的聚焦文本框中输入文本? 最佳答案 我认为问题出

windows - 如何禁用 Shift/Ctrl/Alt 键的 WM_KEYDOWN 重复事件?

我有一个Windows应用程序处理Windows按键事件。应用程序传达WindowsMessage。当我按住Shift键时,WM_KEYDOWN消息重复出现。我只想传达一条WM_KEYDOWN消息,即使按住Shift键也是如此。您能否告诉我如何解决此问题? 最佳答案 你不能。检查lParam的第30位以查看消息是从上到下的转换,还是向下的重复。 关于windows-如何禁用Shift/Ctrl/Alt键的WM_KEYDOWN重复事件?,我们在StackOverflow上找到一个类似的问题

c# - VSTO Windows Hook keydown 事件调用 10 次

因此,我一直在开发一个类来处理VSTO加载项中的Kwyboard输入,到目前为止,我一直在使用WindowsHook来完成此操作并取得了相对成功。有这段代码://.....privateconstintWH_KEYBOARD=2;privateconstintWH_MOUSE=7;privateenumWM:uint{KEYDOWN=0x0100,KEYFIRST=0x0100,KEYLAST=0x0108,KEYUP=0x0101,MOUSELEFTDBLCLICK=0x0203,MOUSELEFTBTNDOWN=0x0201,MOUSELEFTBTNUP=0x0202,MOUSEM

windows - 如何从 PreTranslateMessage(MSG*pMsg) 中的 WM_KEYDOWN 中提取字符

在从CView继承的PreTranslateMessage(MSG*pMsg)中的MFC应用程序中,我有这个:if(pMsg->message==WM_KEYDOWN)...WM_KEYDOWN中的字段已记录here.虚拟键VK_的值在pMsg->wParam中,pMsg->lParam包含几个字段,其中第16-23位是键盘扫码。所以在我的代码中我使用:constintvirtualKey=pMsg->wParam;constinthardwareScanCode=(pMsg->lParam>>16)&0x00ff;//bits16-23例如,在我的非美式键盘上,当我按下“#”字符时,

c# - KeyDown 事件 - 如何轻松知道按下的键是否为数字?

我目前正在处理DataGridView控件的KeyDown事件。其中一列由计算值填充,我希望用户能够根据需要覆盖单元格值。当用户按下数字键时,单元格进入编辑模式并允许用户覆盖值。如果键不是数字,则什么也不会发生...这工作得很好......问题是我发现它的代码很丑......我似乎找不到一种巧妙的方法来处理单一条件下的所有数字键,因此我制作了一个switchcase结构来处理所有可能的数字键,如下所示:switch(e.KeyCode){caseKeys.D0:caseKeys.D1:caseKeys.D2:caseKeys.D3:caseKeys.D4:caseKeys.D5:cas