winapi相关内容

多个键盘和低级挂钩

我有一个系统,我有多个键盘,并且确实需要知道击键来自哪个键盘.解释设置: 我有一台普通的 PC 和 USB 键盘 我有一个带有一些硬键的外部 VGA 屏幕 硬键映射为标准 USB 键盘,发送有限数量的键码(F1、F2、Return、+ 和 -) 我有一个低级挂钩(在 C# 中,但实际上调用 Win32 功能),即使我的应用程序没有获得焦点,它也能够处理输入. 问题在于,当使用 ..
发布时间:2022-01-13 22:20:35 C#/.NET

Win32 重叠 I/O - 完成例程或 WaitForMultipleObjects?

我想知道哪种方法更快,为什么? 在编写 Win32 服务器时,我阅读了很多关于 Completion Ports 和 Overlapped I/O 的文章,但我没有阅读任何内容来建议哪组 API 在服务器中产生最佳结果. 我应该使用完成例程,还是应该使用 WaitForMultipleObjects API,为什么? 解决方案 你提出了两种重叠 I/O 的方法,而忽略了第三种( ..
发布时间:2022-01-13 14:11:32 其他开发

追加文本时如何防止文本框自动滚动?

我有一个带有垂直滚动条的多行文本框,用于记录来自实时进程的数据.目前,每当 textBox.AppendText() 添加新行时,TextBox 都会滚动到底部,这样您就可以看到最后一个条目,这很棒.但是我有一个复选框来决定何时允许 TextBox 自动滚动.有没有办法做到这一点? 注意: 我想使用 TextBox,因为添加的文本有多行并由空格格式化,因此与 ListBox 或 Lis ..
发布时间:2022-01-13 11:29:37 C#/.NET

将 (const) char * 转换为 LPCWSTR

我正在尝试使用 WinAPI 中的 FindWindow(),我想向用户询问窗口标题的输入: char *input;cout 相当标准.那么,如何将其转换为 LPCWSTR for FindWindow()? 我已经尝试过以下方法:_T(input), TEXT(input), (LPCWSTR)input 但没有一个工作.我也尝试使用 wchar_t 而不是 char,但我在其他任 ..
发布时间:2022-01-12 20:38:02 C/C++开发

如何在 MFC 中获取子菜单?

我正在尝试获取一个子菜单,以便在它显示之前对其进行更改. 所以我为我的窗口创建了一个 OnInitMenu() 处理程序.我曾计划使用 pMenu->GetMenuItemInfo() 来获取子菜单. 但是,这似乎不起作用.为了找到我想要的菜单,我必须提供菜单命令 ID(我不认为硬编码项目位置令人满意).但是打开子菜单的菜单项没有命令 ID.我可以得到一个存在于该子菜单中的菜单命令,但 ..
发布时间:2022-01-12 15:28:05 C/C++开发

CWnd::CreateDlgIndirect 离开 m_hWnd==NULL

我正在处理的对话框没有显示,使用: CWnd::CreateDlgIndirect(LPCDLGTEMPLATE lpDialogTemplate,CWnd* pParentWnd, HINSTANCE hInst) 对 CreateDlgIndirect 的调用在一个 lon-used 基类中,它有效地获取资源文件中对话框模板的 IDD - 它适用于许多其他对话框,但我看不出我的对话框有什么 ..
发布时间:2022-01-12 15:27:41 C/C++开发

如何找到激活时打开给定 HMENU 的菜单项(如果有)?

我想用原型实现一个函数 /* 定位导致给定菜单“mnu"的应用程序菜单项* 出现.* @return 如果给定的菜单'mnu'被另一个菜单项打开,则返回true,false* 如果不.*/bool getParentMenuItem(HMENU mnu, HMENU *parentMenu, int *parentMenuIdx); 给定一个 HMENU 句柄,我希望能够找出应用程序中的哪个菜 ..
发布时间:2022-01-12 15:27:17 C/C++开发

WM_COMMAND WM_NOTIFY 自定义通知代码

我希望定义一个新的通知 id,它将在我的子类控件的 WM_COMMAND 消息中使用.但是我没有找到任何创建用户控件定义的通知代码的规则. 解决方案 请参阅技术说明 20、21 和 22: TN020:ID 命名和编号约定p> TN021:命令和消息路由 TN022:标准命令实现 简答:在 0x8000 - 0xDFFF 范围内选择一个数字. ..
发布时间:2022-01-12 15:26:34 C/C++开发

支持 ARM 上的 Windows 10 桌面应用程序 - MFC 和 COM 和 OPOS 是否有效?

我试图了解将在 x86 Windows 10 上运行的 C++ MFC 应用程序移植到配备 Qualcomm Snapdragon 处理器的 ARM Windows 10 设备的障碍. 32位应用具有以下特点: 使用 C++ 的 MFC 用于用户界面 用于业务逻辑的 C 源代码分为大约 30 个不同的项目,一些静态库,一些 DLL,一些 EXE 依靠 Windows API 实现 ..
发布时间:2022-01-12 15:24:59 C/C++开发

强制组合框“下拉"上面而不是下面

当您单击组合框的“下拉"按钮时,下拉列表框出现在组合框下方,除非下方没有足够的空间,在这种情况下列表框出现在上方. 现在我想知道是否有可能强制 lisbox 出现在组合框的上方,即使下方有足够的空间. 插图 当我单击组合框时,我希望“下拉"列表框始终显示在左侧屏幕副本的上方. 解决方案 一切皆有可能,无需“从头开始"实现控件. 首先,您可以将 ComboBox 的 ..
发布时间:2022-01-12 15:21:02 C/C++开发

Spy++是如何构建它的进程列表的?

TL;DR - Spy++ 工具是如何真正构建其进程列表的? 舞台 我们有一个挂起的 MFC 桌面应用程序(在 Windows XP 上运行),它不再对任何用户输入做出反应.但是,当通过 alt-tab 切换到它时,它会被重绘.(它确实收到 WM_SETFOCUS、WM_ACTIVATE 等.它显然没有收到任何鼠标或键盘消息.) 由于应用程序陷入了困境,我们提取了一些进程转储,但 ..
发布时间:2022-01-12 15:19:24 C/C++开发

如何知道某个磁盘的格式(是 FAT32 还是 NTFS)

我在windows、c++、mfc下编程如何通过“c:\"等路径知道磁盘的格式.windows有提供这样的API吗? 解决方案 Win32API 函数 ::GetVolumeInformation 就是你要找的. 来自 MSDN: 获取音量信息函数 BOOL WINAPI GetVolumeInformation(__in_opt LPCTSTR lpRootPathName,_ ..
发布时间:2022-01-12 15:19:09 C/C++开发

使用 winapi 或 mfc 从 .NET 应用程序列表控件中获取项目名称

所以基本上我有这个以列表形式输出数据的软件.感谢这里的评论,我们了解到它很可能是用 .NET 编写的. 我想扫描列表,以便对数据执行一些算法. 使用 Spy++,我发现保存此列表的标题为“Panel2",我可以使用 EnumChildWindows 获取此列表的句柄(其类为“WindowsForms10.Window.8.app"). 但是我不知道如何访问列表本身,以便我可以阅读 ..
发布时间:2022-01-12 15:18:07 C/C++开发

屏幕截图忽略了一些窗口

我在 MFC 中工作,我正在尝试捕获桌面的 bmp.我正在使用 GetDC(NULL) 来执行此操作,但它似乎忽略了特殊的蒙皮窗口.它似乎忽略了用 UpdateLayeredWindow 绘制的窗口.这种行为似乎只发生在 Vista x64 和 XP 上.我也试过 GetWindowDC 和桌面 HWND 但结果是一样的. 注意事项:1)打印屏幕工作.2) 在 Vista 上,如果我启用 A ..
发布时间:2022-01-12 15:17:34 C/C++开发

如何将 LONG 转换为 CString?

我想将 long 转换为 cstring. 我已经为此苦苦挣扎了一段时间,我看到了很多解决这个问题的变体,或多或少充满了麻烦和焦虑. 我知道这个问题看起来很主观,但在我看来确实不应该.当情况涉及 MFC 和这些情况附带的标准库时,必须有一种方法被认为是最好的. 我正在寻找一种行之有效的单线解决方案.有点像 C# 中的 long.ToString(). 解决方案 就这么简单 ..
发布时间:2022-01-12 15:15:24 C/C++开发

从我的应用程序发送消息 Ctrl+Alt+Del

我想在 MFC 中编写一个小实用程序,它将 Ctrl+Alt+Del 消息发送到操作系统.任何人都可以帮助我如何实现这一目标?我试过了: ::PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG(MOD_CONTROL | MOD_ALT, VK_DELETE)); 但这不起作用. 我想发送 Ctrl+Alt+Del 不调用 TaskMgr ..
发布时间:2022-01-12 15:14:08 C/C++开发

我的 RichEdit 控件可以包含可点击的链接吗?

我想向编辑控件或 Rich Edit 2.0 控件显示一系列字符串.之后,我希望显示的一些文本带有下划线和蓝色.然后可以单击这些带下划线的文本以打开另一个对话框或某种对话框. 有没有办法做到这一点? 解决方案 Rich Edit 2.0 仅支持 自动 RichEdit 超链接 而 Rich Edit 4.1 和更高版本 (msftedit.dll) 支持 友好名称超链接. 您可 ..
发布时间:2022-01-12 15:13:49 C/C++开发