问题标签 [wndproc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# 新手-想添加 WndProc
大家,我对C#很陌生,请帮助我......
我想添加 WndProc 来处理消息,我查看了属性,但我没有看到显示函数名称的迅雷,所以我可以添加一个我喜欢的。我搜索互联网并将 WndProc 视为
我希望它为我生成,而不是输入它?
c++ - 发送 lparam 作为指向类的指针,并在 WndProc() 中使用它
我有这个抽象代码:我想在 CreateWindowEx() 中使用 lParam(最后一个参数)来保存指向在 main 开头声明的类的指针 - SaveArr。然后,我想在函数 WndProc 中使用它。一开始我做了一个全局数组,然后我可以在任何地方使用它,但就 c++ 而言,它并不是那么“聪明”,所以我试图对其进行升级。
c# - WndProc,如何捕捉所有按钮按下?
我正在为带有条形码阅读器的 .NET CF3.5 WM6.1 设备开发应用程序,并希望捕获设备上的所有按钮(F1、1、扫描仪按钮)单击。特别是我对如何捕捉条形码按钮感兴趣。我写了一个小应用程序,但我能捕捉到的唯一动作是关闭表单。有人可以帮我处理这段代码吗?我错过了什么?
谢谢你,卢卡斯
c# - 在c#中处理任务栏按钮的右键单击/左键单击
我有一个表单(任务栏按钮显示在任务栏中),我想处理此任务栏按钮的左/右键单击。我到处搜索,但都能找到正确的答案。stack-overflow 中也发布了一些相关查询:
但是,似乎没有人对“如何做”给出正确的答案?
是否有任何指针或代码片段如何做到这一点?
请注意,我说的是任务栏应用程序按钮(请不要与系统托盘菜单或通知区域混淆)。我已经明确说明了这一点,因为我已经在几个地方看到了这种混乱。
vb.net - 从 WM_LBUTTONDOWN SendMessage 获取位置
当 WM_LBUTTONDOWN 在 vb.net 中发送时,我想从参数中获取 x、y 位置。
我得到了这个来制作参数,但我如何从中获得位置。
我的功能:
更新:我刚试过这个,它工作得很好。
c# - C# p/invoke 到 RegisterHotKey 键组合 ALT+TAB 不起作用(返回 0)
我正在使用以下代码来截取我的 c# 应用程序中的 ALT+TAB 键序列。
一些相关的片段:
和
和
几乎在第二个片段中,ret 是假的,但是当我用 MOD_SHIFT (0x04) 替换 MOD_ALT (即 0x01) 时,ret 变为真并且热键拦截有效。
我想知道为什么会这样,因为我在网上看到的许多示例都表明它们有效。
c# - 在处理热键消息时试图了解 C# WinForms WndProc 方法中真正发生的事情
我一直在开发一个 C# WinForms 应用程序,该应用程序使用讨论得很好的 GlobalAddAtom 和 RegisterHotKey PInvoke 方法注册了几个热键。该程序以最小化模式启动并在系统托盘中运行。每次收到一个热键消息时,程序都会捕获有关哪个键被按下的数据,并将其交给另一个对象进行处理。这已经有一段时间了,但时不时会出现一些奇怪的行为。诸如同一条消息多次处理或某些消息完全丢失之类的事情。
添加一些广泛的日志记录后,我发现如果用户按住热键组合(例如 Win + C)的时间比正常时间长一点,或者只是简单地按住它,那么消息循环中会收到新的热键消息在上一条消息完成处理之前。
现在,在我看来,在 UI 线程上接收到一条消息(即使它是隐藏的),并通过对不同类的实例的阻塞调用进行处理。如果这是真的,那么另一条消息如何进入当前正在处理第一条消息的同一个函数?这就是我缺乏对 Win32 的理解让我摸不着头脑的地方。
在我看来,第二条消息是在不同的线程上收到的。但是,如果这是真的,那么它调用的是我的处理类的哪个实例?
任何帮助解决这个问题将不胜感激!
这是一个简化的例子。这段代码...
...产生这样的输出。
.net - 在 Panel 的重载 WndProc 中未收到 WM_KEYDOWN 消息?
我正在接收其他类型的消息,所以我知道正在调用重载方法。
我从搜索中找到的唯一信息是关于需要给我的面板焦点以便它可以接收输入。但是,该解决方案没有任何帮助。(http://www.dotnet247.com/247reference/msgs/44/221762.aspx)
任何帮助,将不胜感激 :)
c# - 在模式进度对话框启动时调用“Application.DoEvents”是否可以?
我有一个无法异步运行的冗长过程,因此就像在复制文件时使用资源管理器一样,我有一个进度对话框。我以模态方式显示对话框,然后执行操作(我们将其称为复制文件以使其保持抽象),更新进度对话框,并使用 Application.DoEvents() 泵送消息以保持应用程序主框架的绘制和响应。
由于对话框是模态的,用户除了观看或取消之外不能做任何事情。换句话说,他们无法选择菜单项或单击任何按钮。
我一直认为 Application.DoEvents 非常邪恶,因为您可以重新输入您不打算重新输入的代码。但在这种情况下,由于进度对话框是模态的,我看不出这是一个糟糕或危险的解决方案的原因。
我是否忽略了某些东西,或者使用 Application.DoEvents 发送消息是与模式对话框有关的合法事情?