草庐IT

c++ - 监听 WM_SYSCOMMAND 事件

我正在编写一个小的c++程序,它应该对sc_screensaver和sc_monitorpower事件使用react。这应该在后台运行,因此没有gui。因为我还没有使用WindowsAPI的经验,所以我为此苦苦挣扎。A已经在谷歌上搜索了很多,发现了很多我不理解或不起作用的方法。你们中的任何人都可以给我提示吗?我阅读了有关捕获wm_syscommand的内容,但这似乎很困难,因为我没有窗口。 最佳答案 获取消息的唯一方法是通过消息循环和窗口过程。如果您的程序没有可见的图形用户界面,您必须创建一个message-onlywindow为此

c++ - 报告 ListView 中的气球式工具提示中错误的词干位置

我想将ListView控件工具提示的默认样式更改为气球。我首先调用了ListView_GetToolTips()获取ListView工具提示控件的HWND,然后使用了GetWindowLongPtr()/SetWindowLongPtr()添加TTS_BALLOON样式。我处理LVN_GETINFOTIP以自定义ListView中项目(第一列)的工具提示:第一列项目出现的工具提示文本实际上是第三列文本的拷贝柱子。其他列(子项)由ListView自动管理。第一列项目的气球式工具提示看起来不错;它们的词干位置正确:但是第二列的工具提示似乎画错了,例如气球被绘制为好像它被引用到鼠标光标指向的

c++ - 并非总是可以在 "clean"Windows 8.1 上的 WoW64 上捕获 SEH

我有使用VS2008编译的Win32MFC应用程序。该应用程序具有TreeConrtol。有一个TVN_ITEMCHANGING处理程序,在处理程序中我强行重新绘制已更改的树项。这是带有SEH处理程序和直接WinAPI调用而不是MFC包装器的代码(这不会影响问题):voidCMainDlg::OnTvnItemChangingMainTree(NMHDR*pNMHDR,LRESULT*pResult){NMTVITEMCHANGE*pNMTVItemChange=reinterpret_cast(pNMHDR);HWNDhTreeCtrl=_ctrlTree.GetSafeHwnd()

C++ 写注册表

这个问题在这里已经有了答案:UsingC++toedittheregistry(5个答案)关闭8年前。我会在注册表中写入此注册表项。它应该用C++为Windows7和8编写。这是.reg文件:REGEDIT4WindowsRegistryEditorVersion5.00[-HKEY_CLASSES_ROOT\.bin\][-HKEY_CLASSES_ROOT\binimage\][-HKEY_CLASSES_ROOT\BootvisTraceFile\][-HKEY_CLASSES_ROOT\CrestronSIMPLWindowsCompiledProgram\][-HKEY_CL

c++ - 编译后可执行文件出错

你能帮我解决我代码中的问题吗?程序应该要求用户输入狗的名字,最后打印出第三只狗的名字。当我编译和执行该程序时,它说“它停止工作”并且Windows询问我是否要关闭该程序或做其他事情。#include#includeusingnamespacestd;main(){stringperros[10];inti;for(i=1;i>perros[i];}cout 最佳答案 你应该从0到9开始循环for(i=0;i希望这会消除错误... 关于c++-编译后可执行文件出错,我们在StackOver

c++ - 为什么得到的MachineGuid看起来不像是GUID而是韩文?

我创建了一个简单的函数:std::wstringGetRegKey(conststd::string&location,conststd::string&name){constintvalueLength=10240;autoplatformFlag=KEY_WOW64_64KEY;HKEYkey;TCHARvalue[valueLength];DWORDbufLen=valueLength*sizeof(TCHAR);longret;ret=RegOpenKeyExA(HKEY_LOCAL_MACHINE,location.c_str(),0,KEY_READ|platformFla

c++ - 如果我输入错误的 dos 命令,shellexecute 会给出正确的结果

我正在执行dos命令并给出预期的结果。//executingdoscommandhInst=ShellExecute(0,"open","cmd.exe","/Cdir>out.txt",0,SW_HIDE);if(int(hInst)>32){cout如果我为错误的命令执行相同的代码..hInst=ShellExecute(0,"open","cmd.exe","/Cabc>out.txt",0,SW_HIDE);if(int(hInst)>32){cout它仍然显示执行的命令不是预期的。我该怎么做才能检查命令(abc)是否有效并成功执行 最佳答案

c++ - RichEdit 语法高亮

我需要你的帮助!所以,我正在创建一个带有语法高亮器的RichEdit,我是这样做的:SendMessage(hWin,WM_SETREDRAW,false,0);CHARFORMAT2format,old;format.cbSize=sizeof(format);old.cbSize=sizeof(format);MainRich.GetFormat(SCF_DEFAULT,&format);MainRich.GetFormat(SCF_DEFAULT,&old);format.dwMask=CFM_BOLD;format.dwEffects=CFE_BOLD;CHARRANGE*c=

c++ - 如何在 MFC 中禁用 CListCtrl 的水平滚动条?

我的MFC工程中有一个CListCtrl控件,我不想随时显示横向的ScrollBar。但是垂直的需要正常显示。我用的是VS2010,有解决办法吗? 最佳答案 您可以通过派生您的List控件并拥有类似这样的东西来做到这一点:voidCListCtrlEx::OnNcCalcSize(BOOLbCalcValidRects,NCCALCSIZE_PARAMSFAR*lpncsp){ModifyStyle(WS_HSCROLL,0);CListCtrl::OnNcCalcSize(bCalcValidRects,lpncsp);}或者如果

c++ - 预编译 header 是否可以比干净构建的经典包含慢?

我正在开发一个带有预编译header(stdafx.h、指令Use、指令Create)的visualstudio项目。除了几乎一直使用的外部头文件外,stdafx.h中还有50多个来自项目本身的头文件。我想知道如果没有预编译header,干净的构建会变慢还是变快。不幸的是,要尝试我将不得不大量修改整个项目(我最终会这样做,因为耦合是一个问题)。 最佳答案 如果在项目中多次使用pch中的header,则预编译header构建会更快。由于该header仅编译一次,因此它不会比一遍又一遍地编译包含的header慢。pch的最大缺点是它们隐