草庐IT

c++ - 对话框的单独任务栏按钮

我支持基于WinAPI/ATL的应用程序,其中包含根据用户操作创建的许多对话框窗口。大多数对话框都是无主窗口。如果同时创建多个对话框,它们的任务栏按钮将在任务栏上组合在一起(默认行为)。现在我的任务是为其中一个对话框窗口创建一个单独的任务栏按钮。我找不到有关如何执行此操作的任何相关信息。我什至尝试使用ITaskbarListCOM接口(interface),但它的AddTab()方法就像上面的默认模型一样工作。是否可以为应用程序的一个实例在任务栏上放置多个按钮?如果是,请解释我如何实现这一点。 最佳答案 在Windows7及更高版本

单击通知区域图标 Windows 的 C++ 事件处理

我想为Windows实现某种事件处理。我有一个程序,在通知区域(系统托盘)中有一个符号,当用户单击该图标时,我希望该程序再次显示。有没有一种简单的方法可以在C++中将其实现为事件?我只在C#中找到了实现此目的的方法。这是一个控制台应用程序,我想尽可能少地更改。但据我所知,控制台应用程序没有WndProc处理程序。 最佳答案 为什么没有WndProc?控制台应用程序是一个完美的win32应用程序,它可以使用非控制台应用程序可以使用的任何东西。这是一个简单但有点长的示例。#include#include#include#includeL

c++ - MFC,OPENFILENAME 结构 : m_ofn. lpstrCustomFilter

我只是想弄清楚如何在MFC的CFileDialog中使用m_ofn.lpstrCustomFilter。内部结构是一个OPENFILENAME。我需要一个实际的例子,因为我找到的所有例子都将lpstrCustomFilter设置为NULL。 最佳答案 根据OPENFILENAME文档:lpstrCustomFilterType:LPTSTRAstaticbufferthatcontainsapairofnull-terminatedfilterstringsforpreservingthefilterpatternchosenbyt

c++ - 无法在 mfc 中看到添加变量向导

我正在使用visualstudio2010,我正在创建一个基于MFC对话框的应用程序。一切正常,直到最近当我们在主对话框中右键单击一个控件并选择添加变量时添加变量向导停止显示。我在项目中有3个对话框。为其他对话框显示添加变量向导。仅对于主对话框,向导未显示,即。没有什么当我们右键单击并选择在主对话框中嵌入的图片控件上添加变量时,就会发生这种情况。我使用的是64位Windows7。 最佳答案 问题是对话框属性中的ID不匹配(主对话框的ID)和对话框对应类的标题。它已修复并且现在可以正常工作。

c++ - QSocketnotifier 在 Windows 上不能用于串口读取?

我正在开发一个应用程序,它从连接在Windows7的串行端口上的设备(微Controller)读取数据,并将所有读取的数据显示到基于Qt的UI应用程序中。环境:Qt:Qt5.6.0操作系统:Windows7在实现从Windows串行端口连续读取之前。我实现了一个测试应用程序,使用QSerialPort类在按下按钮(QtGUI中的某个按钮)时从串行端口读取数据,它工作正常。所以我开始实现从串口连接的设备连续读取示例:1.连接按钮按下。连接到设备。2.按下启动按钮。开始阅读。3.停止按钮按下。停止阅读。这里我的代码与我的测试应用程序相同,但需要继续阅读。当我连接到设备(按下连接按钮)时,我

c++ - 以编程方式在 Windows 上隐藏应用程序

有没有办法以编程方式在Windows上隐藏应用程序?我想实现与windows+D快捷方式相同的功能,但对于单个应用程序。我想在该应用程序中执行此操作(应用程序由多个窗口组成,其中一个窗口不能由用户移动、调整大小、关闭或最小化)。应用程序是用c++编写的,并使用Qt作为UI。 最佳答案 这样做很简单:1-检索该窗口的句柄:HWNDhChild=GetDlgItem(hWnd,ID_MYCHILD);2-使用ShowWindow或通过SendMessage向其发送SW_SHOW:ShowWindow(hChild,SW_HIDE);//

c++ - 找到cmd.exe文件的位置

我构建了一个依赖“cmd.exe”来执行某些任务的C++程序。现在,出于测试目的,该文件的路径是“c:\windows\system32\cmd.exe”。我的问题是是否有任何返回该文件路径的C++API知道我的程序必须在win32和win64上运行。 最佳答案 GetSystemDirectory是一种选择。对于32位应用程序,它将返回32位系统目录。对于x64应用程序,它将返回64位native系统目录。您还可以将CreateProcess或ShellExecuteEx与cmd.exe一起使用,除非您特别关心某个人,否则它应该在

c++ - 附加控制台错误 5 : Access is denied

我在VisualStudio2013中使用C++控制台应用程序,在Windows上工作。首先,我使用FreeConsole分离了控制台,它可以工作;然后,将AllocConsole调用为FreeConsolethenAttachConsolenotworking建议,返回true表示成功;最后,我尝试使用AttachConsole将其附加回去,但什么也没发生--#includeDWORDwinpid=GetCurrentProcessId();//getpidstd::coutSystemErrorCode5means:ERROR_ACCESS_DENIED5(0x5)Accessis

c++ - 使c++程序在Windows中的特定核心上运行

我想知道如何在VisualStudio中强制使用C++编写的程序在特定内核上运行(在具有多个内核的计算机上)。我找到了this文章,但指的是Linux中的C(我在Windows上使用VisualStudio)另外,我使用的Windows版本是否重要? 最佳答案 可以使用WindowsAPI函数SetThreadIdealProcessorEx().此功能适用于Windows7或更高版本。在旧系统上,可以使用SetThreadIdealProcessor(),尽管有更多限制。这个,根据第一个链接的备注Specifyingathread

c++ - 一个线程写入一个变量,另一个线程读取该变量我(C++11 之前)如何保护该变量?

我在C++11之前工作,否则我只会使用包含线程和原子变量来满足我的需要,但是,不能那样做。得到一个在实例化时启动多个线程的类。在一个线程启动函数中,我有类似的东西:voidThisClass::ThisThread(){while(runThisThread){//doingstuff}}另一个函数是:voidThisClass::StopThisThread(){runThisThread=false;//'runThisThread'variableis'volatilebool'}一个线程将根据另一个线程分配的索引咀嚼缓冲区。因此,一个线程会分配一个值,而另一个线程除了读取该值外