草庐IT

c++ - 使用 DEFAULT_GUI_FONT 设置 HFONT 的字体大小

在我的对话框中,我将字体设置为默认的GUI字体,但是我确实需要手动将字体大小设置为15。我该怎么做?HFONTmyQueryFont;myQueryFont=(HFONT)GetStockObject(DEFAULT_GUI_FONT);//setfontsizehereSendMessage(this->hwndQuery,WM_SETFONT,(WPARAM)myQueryFont,FALSE); 最佳答案 您不想使用DEFAULT_GUI_FONT。DEFAULT_GUI_FONTisarelicofthepast.不幸的是,

c++ - MinGW:C++ 编译器无法创建可执行文件

我正在尝试使用MinGWomwindows7编译旧的C++代码(./configure、make..等)但出了点问题。如果我的问题很愚蠢,我很抱歉,但我仍然是初学者!其他帖子中没有类似的错误详细信息。请问有什么帮助吗? 最佳答案 好的……转储MSYS和MinGW(.org)下载并安装MSYS2.启动MSYS2shell,输入pacman-Syumingw-w64-i686-gcc或pacman-Syumingw-w64-x86_64-gcc想构建32位或64位的东西吗?你可以同时安装它们,它们可以愉快地并存)。如果pacman升级了

c++ - MinGW 在 Windows 上制作

我在我的Windows8.1机器上安装了MinGW,我正在使用它来开发可以移植到Unix/Linux系统的C++代码,以代替能够双启动Ubuntu或类似系统。我有一个应该用于构建项目的通用makefile,但由于某种原因,Windows上的find命令无法找到项目的源文件。我收到此错误:Filenotfound-*.cppMakefile:32:***mixedimplicitandnormalrules.Stop.这是我使用的makefile(我改编自this博客,以及博客中的基本项目结构:CC:=g++#Thisisthemaincompiler#CC:=clang--analyz

c++ - 获取 Windows API 标题栏图标

我正在开发一个使用Qt框架来处理大多数窗口绘图的项目。但是,我想在标题栏区域进行一些样式设置,因此我最终不得不引入一些WindowsAPI来完成此操作。我的目标是一个类似Chrome的选项卡系统,位于标题栏区域。我已经有了我想要的行为(QWidget选项卡在顶部,WinAPI处理一些其他窗口方面,如最小化、最大化、aero捕捉等)。但是,我想知道如何显示标准窗口按钮(最小化、最大化/恢复、关闭)。现在,我正在通过位于正确位置的QPushButton并使用我提供的图标来创建自己的按钮,但理想情况下我想使用native图标。我的问题:有没有办法使用WindowsAPI获取这些按钮的图标?我

c - Win32 - 在创建窗口之前拦截窗口的更好方法

我正在尝试自动化外部Windows应用程序。目标是在不显示任何事件窗口/启动画面且不从其他应用程序窃取焦点的情况下使此应用程序最小化启动。我用C编写了一个小程序,它在循环中调用EnumWindows()并使用ShowWindow()来最小化所需的窗口。它非常快,在80%的情况下都有效。不幸的是,有时应用程序窗口仍在显示并在短时间内窃取焦点。拦截窗口的更好(确定)方法是什么?使用SetWindowsHookExHook是唯一的选择吗? 最佳答案 您是否尝试过使用STARTUPINFOstructure的wShowWindow成员?你传

windows - C++Builder - 在汇编中实现整个功能

我正在尝试实现thisinlineassemblytrick在C++Builder中获取EIP的值。以下代码适用于Release模式:unsignedlongget_eip(){asm{moveax,[esp]}}但是它在Debug模式下不起作用。在Debug模式下,代码必须更改为:unsignedlongget_eip(){asm{moveax,[esp+4]}}通过检查生成的程序集;不同之处在于,在Debug模式下,为get_eip()函数(第一个版本)生成的代码是:pushebpmovebp,espmoveax,[esp]popebpret但是在Release模式下代码是:mov

c++ - 高效读取共享资源

我有多个线程,这些线程中的任何一个都可以写入由任何其他线程访问的字符串。我不能同时写入和读取,但我看不出有什么理由不能从两个不同的线程读取同一个资源两次。在C++中,我如何允许对字符串进行异步读取,而不允许同时进行异步写入和读取?我设想我会以某种方式等待Mutex的所有权,并以某种方式让其他读取操作知道拥有线程正在执行读取操作而不是写入操作,因此它也可以读取,但我不能不要真的在某处放置一个简单的标志说“我正在阅读”,因为一旦第二次读取由于该标志而忽略互斥锁,第一次读取操作将退出并且在执行第二次读取操作时可能会发生写入操作。我不知道该怎么做。 最佳答案

c++ - 调用 GetDisplayName 返回与 GetIconPath 相同的结果

我目前有这段代码,遍历默认设备(未显示)的AudioSession控件:intsessionCount;hr=audioSessionEnumerator->GetCount(&sessionCount);if(FAILED(hr)){throwHRESULTException("audioSessionEnumerator->GetCount",hr);}IAudioSessionControl*audioSessionControl;for(inti=0;iGetSession(i,&audioSessionControl);if(FAILED(hr)){throwHRESULTE

c - 自动检测 C 中的操作系统并处理其特定的换行符

有没有办法检测编译C代码以处理文本文件中特定换行符的操作系统?例如,我在Windows机器上编译我的代码,它应该使用\r\n作为文本文件中的换行符,在Linux上它应该只使用\n。我需要这个程序来读取二进制文本文件并将文件的子字符串与其他字符串匹配。这应该适用于Windows和Linux。感谢您的帮助! 最佳答案 您不需要知道native存储格式。当读取一个文件时,您无法知道它是在Windows、Linux还是其他系统上创建的——它可能是在您正在使用的系统之外的另一个系统上创建的。当编写时,您的程序将使用操作系统的native库并输

c++ - SDL2 为假全屏切换 SDL_WINDOW_RESIZABLE 状态

要在没有模式集的情况下在SDL2中创建一个“假的”全屏窗口,您可以使用类似这样的方法创建一个无边框的最大化窗口。intidx=SDL_GetWindowDisplayIndex(g_displayWindow);SDL_Rectbounds;SDL_GetDisplayBounds(idx,&bounds);//SDL_SetWindowResizable(g_displayWindow,SDL_FALSE);SDL_SetWindowBordered(g_displayWindow,SDL_FALSE);SDL_SetWindowPosition(g_displayWindow,bo