winapi相关内容

如何获取当前的操作系统语言?

我是 mfc 的新手,我对如何获取当前操作系统语言感到震惊(例如:如果是英文操作系统,我必须获取它,因为英语和语言环境可能不同.对于英语操作系统语言环境可以是日语反之亦然). 当前语言环境我通过 GetSystemDefaultLangID 获得它,我唯一剩下的就是我需要获得当前的操作系统语言. 谁能帮我解决这个问题. 解决方案 也许你需要GetUserDefaultUILan ..
发布时间:2022-01-12 14:54:57 C/C++开发

MFC 无模式对话框立即关闭

我喜欢编写基于无模式对话框的应用程序,但我遇到了问题.当程序启动时,窗口立即关闭. 当我创建一个模态对话框时,相同的代码可以正常工作.(DoModal()) Csetkliens.h #pragma once#ifndef __AFXWIN_H__#error "在为 PCH 包含此文件之前包含 'stdafx.h'"#万一#include "resource.h"//主要符号#in ..
发布时间:2022-01-12 14:54:29 C/C++开发

如何使 CStatic 控件 (MFC) 透明?

我的应用程序有一个带有填充整个对话框的图像的开始对话框.另外还有一个 CStatic 控件,它为用户显示一些可变信息.我使用以下代码使 CStatic 控件透明: HBRUSH CStartbildDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){if(pWnd->GetDlgCtrlID() == IDC_STATIC_INFO){pD ..
发布时间:2022-01-12 14:51:46 C/C++开发

WinAPI 和 UTF-8 支持

关于 UTF-8 支持和各种 Win32 API 的快速问题. 在典型的 C++ MFC 项目中,MessageBox() 是否可以显示 UTF-8 编码的字符串? 谢谢,安德鲁 解决方案 快速回答:没有. 更长的答案:如果字符串只包含常规的 ANSI 字符,例如美国英语,它将起作用,因为这些字符代码在 UTF-8 和 ANSI 中是相同的. 如果包含非 ANSI ..
发布时间:2022-01-12 14:48:29 C/C++开发

64 位机器上的 DWORD 和 DWORD_PTR

为了支持 Win64 的 64 位寻址,向 Windows API 添加了一些 *_PTR 类型. SetItemData(int nIndex,DWORD_PTR dwItemData) 当我将第二个参数作为 DWORD 传递时,此 API 适用于 64 位和 32 位机器. 我想知道,如果我将第二个参数作为 DWORD 传递,这个特定的 API 在 64 位机器上是否会失败.如何测试 ..
发布时间:2022-01-12 14:47:38 C/C++开发

如何查找窗口的 SW_SHOW/SW_HIDE 状态

我正在尝试确定已使用 CWnd::ShowWindow() 隐藏或启用的窗口控件的可见性.(或::ShowWindow(hWnd,nCmdShow)) 我不能简单地使用 ::IsWindowVisible(hWnd),因为控件位于选项卡上,它本身可能会被切换,导致 IsWindowVisible 返回 FALSE. 有没有办法获得 SW_SHOW/HIDE(或其他)窗口状态,还是我需要 ..
发布时间:2022-01-12 14:46:23 C/C++开发

如何删除文件 MFC 的只读属性

在我的 MFC 应用程序中,我在特定文件上设置了只读属性.我通过使用 SetFileAttributes() 函数完成了这项工作.在某些时候,我必须再次删除该文件的该属性. 谁能解释一下如何做到这一点? 解决方案 再次使用 SetFileAttributes 重置标志: SetFileAttributes(pszFilename,GetFileAttributes(pszFilen ..
发布时间:2022-01-12 14:45:44 C/C++开发

如何获取窗口标题按钮的大小和位置(最小化、恢复、关闭)

是否有 API 调用来确定窗口标题按钮的大小和位置?我正在尝试将 vista 样式的标题按钮绘制到所有者绘制的窗口上.我正在处理 c/c++/mfc. 编辑:有人有绘制关闭按钮的代码示例吗? 解决方案 我找到了获取vista中按钮位置所需的函数:WM_GETTITLEBARINFOEX 此链接还显示了正确设置所有间距所需的系统指标(可惜它不是完整的对话框图片).这在 Vista ..
发布时间:2022-01-12 14:45:28 C/C++开发

什么是无效,更新方法在 VC++ 中的作用

我对 c++ 中的窗口函数有一点怀疑."invalidate()" 函数到底是做什么的?它发送什么消息?我们什么时候需要调用它?"update()" 函数又是什么?"invalidaterect()" 是否与 "invalidate()" 功能类似? 谢谢 解决方案 CWnd::Invalidate() 使窗口的整个客户区无效,这表明该区域已过时,应重新绘制.您通常会在需要重绘的控件 ..
发布时间:2022-01-12 14:44:56 C/C++开发

SelectObject 函数如何选择和销毁 GDI 对象

由于我是 Visual C++ 的新手,这可能是一个与选择 GDI 对象相关的非常基本的问题. 以下代码段绘制了一个没有边框的浅灰色圆圈. cPen pen(PS_NULL, 0, (RGB(0,0,0)));dc.SelectObject(& 笔);CBrush笔刷(RGB(192,192,192));dc.SelectObject(和画笔);dc.Ellipse(0,0, 100,10 ..
发布时间:2022-01-12 14:41:49 C/C++开发

我可以从对话框的 DoModal 函数返回自定义值吗?

我想要做的是,在使用 DoModal() 创建一个对话框并在框中按 OK 退出它之后,返回一个自定义值.例如,用户将在对话框中输入的几个字符串. 解决方案 你不能改变DoModal()函数的返回值,即使可以,我也不推荐它.这不是这样做的惯用方式,如果您将其返回值更改为字符串类型,您将无法查看用户何时取消对话框(在这种情况下,返回的字符串值应该完全忽略). 相反,向对话框类添加另一个( ..
发布时间:2022-01-12 14:41:40 C/C++开发

有没有办法通过标准的 OPENFILE 对话框选择向用户显示哪些文件?

Vista 引入了一个接口:IFileDialog::SetFilter,它允许我设置一个过滤器,该过滤器将为每个潜在的文件名调用,以查看它是否应该显示给用户. 微软在 Windows 7 中删除了它,并且在 XP 中不支持它. 我正在尝试自定义我们的打开文件对话框,以便我可以控制向最终用户显示哪些文件.这些文件在内部用产品代码标记 - 文件名本身没有任何要过滤的内容(因此文件扩展名过 ..
发布时间:2022-01-12 14:41:13 C/C++开发

获取 Windows 上任何用户的 CSIDL_LOCAL_APPDATA 路径

是否有任何 Win32/MFC API 可以为我想要的 any 用户(不仅是当前登录的用户)获取 CSIDL_LOCAL_APPDATA?假设我有一个“域\用户"形式的用户列表,我想获取他们的路径列表 - 这可能吗? 解决方案 您可以获取用户的SID,然后在HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 下查找并获 ..
发布时间:2022-01-12 14:40:51 C/C++开发

为什么文件路径长时 CFileDialog::GetNextPathName 不起作用?

使用 CFileDialog 类,我选择多个文件放置在具有长路径的目录中.只选择一两个文件就可以了;但是当我同时选择三个文件时,它只返回第三个文件路径的一部分.(看起来可能限制为 512 个字符)我该如何解决这个问题? 解决方案 MFC 使用大小为 _MAX_PATH 的默认缓冲区,这就是您看到该行为的原因.查看 dlgfile.cpp 以了解 CFileDialog::CFileDial ..
发布时间:2022-01-12 14:40:16 C/C++开发

如何判断当前窗口是否为活动窗口?

如何判断我的窗口是否是当前活动窗口?我目前的猜测是做 GetForegroundWindow 并将 HWND 与我的窗口进行比较.还有比这更好的方法吗? 我正在使用 Win32 API/MFC. 解决方案 是的,这是我知道的唯一方法. 但是您必须处理 GFW 可以返回 NULL 的事实.通常,当另一个桌面(例如屏幕保护程序桌面)处于活动状态时会发生这种情况.请注意,使用保护程序 ..
发布时间:2022-01-12 14:40:10 C/C++开发

如何为 Win32 应用程序中的所有窗口设置默认字体?

我希望我的应用程序中的所有控件(编辑、列表控件等)都具有相同的字体,这不是系统默认的字体.我该怎么做呢?是否有任何设置应用程序默认字体的 Win32 API? 解决方案 Windows 不为应用程序范围的字体提供任何机制.每个窗口类可能有自己的行为来选择默认使用的字体.它可能会尝试选择 Windows shell 对话框使用的字体,或者它可能只是使用自动选择到新 DC 中的可怕的位图“系统 ..
发布时间:2022-01-12 14:39:53 C/C++开发