草庐IT

windows - 在 CPropertySheet/CDialog 上使用带有 WS_THICKFRAME 的 ModifyStyle

我有一个CPropertySheet。当我使用ModifyStyle(DS_MODALFRAME,WS_POPUP|WS_THICKFRAME|WS_MAXIMIZEBOX);在OnCreate处理程序中一切正常。创建的窗口按预期运行并且可以调整大小。当我使用相同的代码时,在CPropertySheet::OnInitDialog中稍晚一点,此代码只具有显示正确框架的效果,当我拖动到窗口边框上时光标也会发生变化。但是没有调整大小的功能。在OnInitDialog中使用CDialog时也会发生同样的情况。某些标志在创建窗口后无法更改的接缝。是否有关于此问题的更多信息?

c - 在使用 Windows 7/8.1 和 Windows 10 的 FormatMessage 中的 LocalFree/HeapFree 之前,我是否应该查询操作系统?

来自MSDN(格式消息函数):Windows10:LocalFreeisnotinthemodernSDK,soitcannotbeusedtofreetheresultbuffer.Instead,useHeapFree(GetProcessHeap(),allocatedMessage).Inthiscase,thisisthesameascallingLocalFreeonmemory.我不知道如何使用HeapFree,但我想在Windows7、Windows8/8.1和Windows10中运行该应用程序,但我目前只使用LocalFree,它正在运行。这是我的代码:VOIDSho

Windows 位图 : BITMAPV5HEADER and BITMAPINFO compatible?

来自thedocumentationonCreateDIBSection我观察到CreateDIBSection将指向BITMAPINFO的指针作为第二个参数。但是,我遇到了很多地方表明可能允许将指针传递给其他结构(特别是BITMAPV5HEADER),包括thisanswertoanotherquestionChromiumsourcecode我觉得这很有道理(BITMAPV5HEADER可以看作是BITMAPINFO结构布局的“扩展版本”),但我找不到一个关于此主题的单个官方文档。有人可以确认传递BITMAPV5HEADER*而不是BITMAPINFO确实有效并且可能提供一些文档吗

windows - 覆盖默认的 F1 Windows 帮助行为

我有一个简单的MFC应用程序,我想在其中自定义应用程序提供的帮助按钮功能。单击F1或帮助按钮时,默认情况下会打开Windows帮助支持页面。我怎样才能禁用此默认行为并使其不显示任何内容?什么都不显示,我的意思是不显示默认的Windows支持页面。理想情况下,当我应该按F1或单击帮助按钮时,它应该不会打开任何窗口。 最佳答案 //FreethestringallocatedbyMFCatCWinAppstartup.//m_pszHelpFilePathisthemembervariableofCWinAppthatstoresthe

c - 是否有来自低级库(如 kernel32.dll 或 ntdll.dll)的 wsprintf() 类型函数?

我正在编写一个低级记录器函数,它将文本字符串附加到文本(日志)文件的末尾。要求是此函数不应调用来自DLL的任何WinAPI,这些DLL可能尚不可用于该进程——例如当它从DllMain调用时处理程序。换句话说,它不能使用除了保证加载到任何用户模式进程中的库之外的任何库,即kernel32.dll或ntdll.dll.我可以通过CreateFile、WriteFile、CloseHandle、HeapAlloc、HeapFree等均来自kernel32.dll。问题在于格式化输出字符串。例如,我需要添加一些额外的(自动生成的)详细信息,例如当前时间、进程ID、sessionID等。我通常会

windows - 在多窗体应用程序中更改窗口顺序

我有一个包含一些非模态表单的应用程序,每个表单都有自己的图标。我需要任务栏上所有窗体的图标在最小化/恢复时不会消失,经过一些测试,这是我的解决方案。申请Application.Initialize;Application.CreateForm(TForm1,Form1);Application.Run;TForm1-带有一个TButton的主窗体procedureTForm1.btn1Click(Sender:TObject);beginTForm2.Create(Application).Show;end;procedureTForm1.FormCreate(Sender:TObje

c++ - 读取 REG_RESOURCE_LIST 内存值 - 不正确的值

我正在尝试使用以下代码读取Hardware\ResourceMap\SystemResources\PhysicalMemory中的物理内存值:#include#include#include#include#includeusingnamespacestd;intmain(){HKEYhKey=NULL;LPCTSTRpszSubKey=L"Hardware\\ResourceMap\\SystemResources\\PhysicalMemory";LPCTSTRpszValueName=L".Translated";if(!RegOpenKey(HKEY_LOCAL_MACHIN

windows - 无法从 WinApi crate 调用 CryptDecrypt,因为它找不到模块

在documentation它说该函数在winapi::um::wincrypt::CryptDecrypt中,但是当我安装crate并将其放入我的项目时一切正常,直到我尝试调用我得到的函数以下错误消息:error[E0433]:failedtoresolve.Couldnotfind`wincrypt`in`um`-->src\main.rs:68:39|68|letdecrypted_password=winapi::um::wincrypt::CryptDecrypt(password);|^^^^^^^^Couldnotfind`wincrypt`in`um`我的目标是从我计算

windows - 两个应用程序之间相互的SendMessage-ing如何工作?

假设我有2个应用程序A和B。每个应用程序在主线程中创建一个窗口,而没有其他线程。当按下应用程序A窗口的“关闭”按钮时,将发生以下情况:应用程序A收到WM_CLOSE消息并按以下方式进行处理:DestroyWindow(hWnd_A);return0;在WM_DESTROY应用程序A上的行为类似于:SendMessage(hWnd_B,WM_REGISTERED_MSG,0,0);//keyline!!PostQuitMessage(0);return0;在WM_REGISTERED_MSG应用程序B上运行:SendMessage(hWnd_A,WM_ANOTHER_REGISTERED

windows - 为什么鼠标光标绘制速度比应用程序快?

我注意到的一件事(至少在Windows上是这样)是鼠标光标的绘制延迟甚至比标准Windows元素要短得多。一个很好的例子就是开始在桌面上拖动。您可以很容易地注意到拖动矩形明显滞后于光标。我的第一个问题是:为什么会这样?我无法想象绘制矩形比绘制光标要昂贵得多。当然不是一两帧。我的第二个问题是,是否有可能将一个应用程序渲染与光标输入1:1匹配?一个很好的用例是这个选择矩形,或可拖动项目的拖动预览。两者都明显落后于操作系统鼠标指针(与使用的任何框架或库无关)。 最佳答案 在我的系统(DWM开启)上,使用选择矩形在桌面上选择图标并没有那么慢