草庐IT

windows - 为什么垂直方向的字体大小不同

我创建了两个标尺-一个垂直的和一个水平的:现在在垂直标尺中,文本的“大小”在视觉上更大(大约长5-6像素)。为什么?相关代码:WM_CREATE:LOGFONTLf={0};Lf.lfHeight=12;lstrcpyW(Lf.lfFaceName,L"Arial");if(!g_pGRI->bHorizontal){Lf.lfEscapement=900;//hfRuler=CreateFontIndirectW(&Lf);SelectFont(g_pGRI->hdRuler,g_pGRI->hfRuler);WM_PAINT:SetTextColor(g_pGRI->hdRuler

c++ - 在 Win32 中删除子文件夹本身之前,如何从文件夹和子文件夹中删除文件?

在Win32API中删除目录(RemoveDirectory)要求在删除文件夹之前删除该文件夹下的所有文件。因此,假设我在根目录下有一个文件夹“foo”,里面有文件,还有一些可能有或没有文件的子文件夹,我如何递归地删除所有文件,然后删除子文件夹? 最佳答案 它通常需要一个递归函数,读取您要删除的目录的内容(通过FindFirstFile()/FindNextFile())——如果一个文件是遇到则删除,否则递归进入文件夹,递归返回时删除文件夹。或者你可以只使用IFileOperation系统将为您完成所有工作。

windows - 除了 "flags"参数外,ChildWindowFromPointEx 和 ChildWindowFromPoint 有何不同?

WindowsAPI有ChildWindowFromPoint()和ChildWindowFromPointEx()函数,它们的区别在于后者有uFlags参数指定要跳过的窗口。看起来如果我将CWP_ALL传递给ChildWindowFromPointEx(),我将获得与使用ChildWindowFromPoint()完全相同的效果>.uFlags参数的唯一区别是什么?我可以只在任何地方使用ChildWindowFromPointEx()并在需要ChildWindowFromPoint()行为时传递CWP_ALL吗? 最佳答案 如果有

windows - 仅消息窗口可以接收 WM_QUERYENDSESSION 吗?

在程序的调试版本中,我创建了一个可见窗口,WM_QUERYENDSESSION消息由其WNDPROC接收。在发布版本中,窗口应该是纯消息的,所以我在调用CreateWindowEx()时将HWND_MESSAGE指定为hWndParent。不幸的是,我再也没有收到WM_QUERYENDSESSION消息。WM_QUERYENDSESSION是那些广播消息之一吗mentionedhere?Amessage-onlywindow[...]doesnotreceivebroadcastmessages. 最佳答案 MSDN给出了“仅消息窗

python - 如何在 python 中获取 Windows 用户的全名?

我正在尝试获取用户的全名。不是登录名,而是显示在Windows7开始菜单右上角的全名。它可能只在事件目录设置中显示为全名。os.environ['USERNAME']win32api.GetUserName()这些都返回登录名。如何获取用户的全名? 最佳答案 一点谷歌搜索给了我thislink和这段代码:importctypesdefget_display_name():GetUserNameEx=ctypes.windll.secur32.GetUserNameExWNameDisplay=3size=ctypes.pointer

c++ - 如何找出下一次将时钟调整为夏令时的时间?

我很好奇,是否有任何方法可以找出下一次夏令时调整发生时的UTC日期/时间?类似于Windows报告的内容(见圆圈): 最佳答案 此信息在Windows中由EnumDynamicTimeZoneInformation函数提供。参见http://msdn.microsoft.com/en-us/library/windows/desktop/hh706893%28v=vs.85%29.aspx 关于c++-如何找出下一次将时钟调整为夏令时的时间?,我们在StackOverflow上找到一个类

c++ - 如何获得给定进程的窗口站?

比如说,如果我有一个进程ID或者它的句柄,我能得到windowstation吗?该进程运行在什么条件下? 最佳答案 不是直接的,但试试这个:调用EnumWindowStations()在与调用进程相同的Session中枚举可用的窗口站(如果您需要在另一个Session中查询进程,那么这将不起作用)。对于每个窗口站,请调用EnumDesktops()枚举其桌面。对于每个桌面,请调用EnumDesktopWindows()枚举其顶级窗口。对于每个窗口,调用GetWindowThreadProcessId()获取其进程ID并将其与您要查找

c++ - 创建带有精美细边框的文本字段。 Winapi

我是winapi和c++的新手,但我需要制作带有细边框和圆角的文本字段。我在winapi引用中找不到这种风格:http://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx无论是简单的窗口样式还是扩展的。我发现的唯一合适的边界是WS_EX_CLIENTEDGE但这不是我需要的。这是显示当前和所需外观的图片:那么我应该怎么做才能做出这个花哨的边框呢? 最佳答案 这不是每个窗口样式的问题。“所需”窗口设置了所有默认样式。不同之处在于它以视觉风格

c++ - 沉浸式全屏模式之上的透明窗口

我正在尝试在处于沉浸式全屏模式下的另一个进程之上进行绘制。我知道这可以使用GDI,我有2个问题:是否可以使用顶层透明窗口?(在沉浸式过程之上)是否可以使用更高级别的API来代替GDI?谢谢你:) 最佳答案 在Windows中,您有两种创建全屏窗口的可能性:一个全屏应用程序,拥有显示的独占绘图权。可扩展至完整桌面分辨率的无边框窗口。第一个选项允许您更改显示属性,如分辨率、位深度和刷新率,而第二个选项必须使用与普通(窗口)桌面应用程序相同的选项。如果全屏应用程序是使用选项2实现的,则只有可以用顶层窗口覆盖全屏窗口。但是,在这种情况下,任

windows - 系统运行时间超过 49 天时的 GetTickCount

根据MSDN只有当系统没有连续运行49.7天时,GetTickCountAPI才返回系统运行时间。如果它运行超过那个,它将返回0。有没有人遇到过此API在运行时间超过49.7天的系统上实际上返回0的事件?我需要根据GetTickCount报告的值做出一些决定,如果我发现0,我会将其视为特殊情况并要求用户重新启动系统。 最佳答案 当滴答计数结束时,它返回到0但继续计数。因此,您可以获得以下值序列:4294967295、0、1、2等等。与您的怀疑相反,滴答计数不会滚动到0然后永远保持在那里。翻转后滴答计数继续向上计数。要求用户重新启动机