草庐IT

c++ - 如何在不将 wm_paint 发送到子窗口的情况下使父窗口无效?

父子窗口大小相同。家长听着child的重绘当子重绘时,父重绘。所以我不能使用invalidate来清理父窗口,因为这会将wm_paint发送到子窗口,然后无限循环。如何在不使用invalidateRect、invalidateRgn等的情况下清理父窗口。或者,如何在不将wm_paint发送到子窗口的情况下使父窗口无效?谢谢! 最佳答案 您可以在您的窗口上设置WS_CLIPCHILDREN样式,或者尝试调用RedrawWindow将RDW_NOCHILDREN指定为最终参数的函数。这可能会做你想做的事,虽然这有点难说。

c++ - 如何在 C++ 中读取 "Contributing Artist"元数据?

Windows7在Windows资源管理器中显示“特约艺术家”元数据的方式非常巧妙。想知道如何从C++访问该元数据?也许你甚至指向一些源代码?非常感谢。 最佳答案 假设我们谈论的是MP3,我猜它使用ID3tags. 关于c++-如何在C++中读取"ContributingArtist"元数据?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1071606/

c++ - Vista 中提升的进程不会覆盖文件

我正在尝试从另一个主机进程运行提升的进程,例如file_copier.exe,在Vista上使用ShellExecuteEx和lpVerb="runas"。它显示UAC对话框并以提升的方式运行,并将文件复制到“危险”文件夹,但它不会覆盖现有文件(exe)。我在这里读过:http://www.codeproject.com/KB/vista-security/UAC__The_Definitive_Guide.aspxUAC实际上不会覆盖现有文件,而是将新文件存储在某种缓存中。但我无法弄清楚(如果是这样的话)如何让它实际覆盖现有文件。感谢您的帮助。 最佳答案

c++ - GetQueuedCompletionStatus 停止读取串口

我有一个通过串行端口生成消息的设备。当我重新启动设备时,IO完成端口停止读取字节。代码是调用GetQueuedCompletionStatus():BOOLbRet=GetQueuedCompletionStatus(m_hCompletionPort,&dwBytesTransferred,&dwCompletionKey,&pOverlapped,INFINITE);PortMon看起来像:...IRP_MJ_WRITESerial1SUCCESSLENGTH:7REBOOT.IRP_MJ_READSerial1CANCELLEDLENGTH:1记录显示以下结果:bRet=true

C++ 进程检查

我正在用C++创建一个任务管理器类型的应用程序,我目前正在使用:`voidMyFrame::ProcChecker(boolshowmessage=false){HANDLEhSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);PROCESSENTRY32*processInfo=newPROCESSENTRY32;processInfo->dwSize=sizeof(PROCESSENTRY32);intindex=0;stringprocList="";while(Process32Next(hSnapShot,proce

c++ - Win32 共享内存的包装类? (进程间通信)

您可以为Win32上的IPC推荐什么包装类?我试过XQueue,我发现它有点笨拙,想听听外面还有什么。在InterlockedPopEntrySList()上构建一些东西看起来不错,但这需要服务器2003。谢谢,亚当 最佳答案 我推荐Qt4(或者您可以查看源代码):http://doc.trolltech.com/4.5/qsharedmemory.html 关于c++-Win32共享内存的包装类?(进程间通信),我们在StackOverflow上找到一个类似的问题:

c++ - 是什么在窗口的上角创建了三个关闭/最小化/最大化图标? (C++)

我正在制作一个C++/Windows/DirectX程序,当它以窗口模式运行时(使用d3dpp.Windowed=(!FULLSCREEN);其中FULLSCREEN定义为0),通常位于任何窗口顶部的三个图标(最小化、最大化/恢复和关闭)不存在。此外,它不仅仅是一张没有边框或其他任何东西的图像,它看起来与普通窗口相同,只是减去了前面提到的三个图标。那么,什么会导致窗口在不改变它的任何其他方面的情况下丢失顶角的三个图标? 最佳答案 您不会告诉您窗口是如何创建的。当对普通Win32进行编程时,您使用CreateWindow()或Crea

c++ - 如何在两个 C++ MFC 插件之间进行通信?

我有一个用于C++MFC应用程序的插件。我正在与同一应用程序的另一个插件的开发人员合作,它试图在我的代码中获取事件通知。这两个插件都是c++dll的形式。如何将消息从我的插件传递到他的插件?该解决方案需要对我们两个插件以及主机应用程序的不匹配版本具有鲁棒性。通知是在控制点移动期间发出的,因此每秒发送几次。我可以设置一个回调机制,在加载时他的插件使用函数指针调用我的插件中的一个函数。我们不保证任何加载顺序,但我们可能会定期检查。我知道Win32有一个消息系统,但我不确定它是如何工作的,真的。我们可以添加一个Hook,然后我可以发送消息,但我对如何同步消息ID或我所说的以外的任何细节有点模

C++ 从共享内存读取

我想读取应用程序通过共享内存提供的状态信息。我想使用C++来读取该命名共享内存的内容,然后使用C#类中的pinvoke调用它。从软件上我知道它有一定的文件结构:AstructSTATUS_DATA具有四个结构的数组SYSTEM_CHARACTERISTICS.我(还)不熟悉C++,所以我尝试基本上遵循msdn。为了找到要映射的文件的大小,我添加了结构成员的大小,如下面的代码所示。这导致访问被拒绝,所以我认为基于结构的结果太高了。当我使用sizeof(STATUS_DATA)(我将结构添加到我的源代码中),它仍然以拒绝访问结束。如果我尝试更低的值,比如1024字节,我只能在pbuf中看到

c# - 在 C++ 非托管 dll 和 C# 托管 dll 之间发送 Byte[][]

我有一个导出以下方法的非托管C++dll:ERASURE_APIvoidencode(unsignedchar**inp,unsignedchar**outp,unsignedint*block_nums,size_tnum_block_nums,size_tsz);ERASURE_APIvoiddecode(unsignedchar**inp,unsignedchar**outp,unsignedint*index,size_tsz);inp和outp的大小可高达10KB,从C#托管代码调用这些方法的最佳性能方式是什么?编辑:我做了以下实现,它有效,但这是最有效的方法吗。C++:ER