草庐IT

wide-winapi

全部标签

c++ - EnumMonitors WinAPI 上的段错误

我正在编写代码来检查我的虚拟打印机是否已安装,为此我正在使用EnumMonitorswinapi,代码可以编译,但是当我尝试运行我的程序时,它崩溃了。调试我的程序时,我在这一行遇到了段错误:EnumMonitors(NULL,0,(LPBYTE)buffer,sizeof(buffer),&capacity,&returned);在.pro文件中,我添加了LIBS+="C:\ProgramFiles\MicrosoftSDKs\Windows\v7.1\Lib\WinSpool.Lib"我可以做些什么来使EnumMonitorsWinAPI正常工作?我的代码:#include#incl

c++ - winapi listview检查项c++

我使用minGW32编译器。我创建了一个带有复选框的ListView,如下所示:HWNDhListView=CreateWindowExW(0,WC_LISTVIEWW,L"",WS_VISIBLE|WS_CHILD|WS_TABSTOP|LVS_REPORT|LVS_EDITLABELS,10,10,500,500,hwnd,(HMENU)ID_LISTVIEW,GetModuleHandle(NULL),NULL);SendMessage(hListView,WM_SETFONT,(WPARAM)font,TRUE);ListView_SetExtendedListViewStyl

c++ - WinAPI 和 C++ I/O 中的字符串

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我正在用C++自学WinAPI,但随着我的进步,我注意到WinAPI中的每个函数都返回char*、DWORD、LPCSTR等。我担心的是我喜欢使用字符串,所以我在做什么我得到返回值并将其转换为字符串。是好还是坏?或者如果我每次都转换它会有什么不同吗?还是会使过程变慢或出现任何不良情况。对于c++中的I/O,考虑到exe的大小或性能/功能问题,cout或printf哪个更好?

c++ - 水平鼠标滚轮事件? (WinAPI)

一些笔记本电脑有一个触控板,可以进行水平和垂直滚动(WM_MOUSEWHEEL),一些桌面鼠标可以倾斜滚轮。如何处理触控板或鼠标滚轮的水平滚动? 最佳答案 当鼠标的水平滚轮倾斜或旋转时,WM_MOUSEHWHEEL被发送到事件窗口,对于从触控板的水平滚动控件进行水平滚动也很有用 关于c++-水平鼠标滚轮事件?(WinAPI),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3073

c++ - 如何在 WinAPI 中创建具有视觉样式的平面按钮

我想创建一个类似于Windows7静音按钮的平面图像按钮。这是图片:flatbutton鼠标悬停时(显示边框):flatbuttonhover我尝试使用BS_FLAT样式,但没有任何改变。我的代码使用视觉样式。当我尝试不使用视觉样式的BS_FLAT时,它确实看起来很平坦,但仍然有一个像素的边框。所以我希望按钮看起来扁平且没有边框,但是当鼠标悬停在它上面时,它变成了一个普通按钮。如何实现? 最佳答案 一键创建工具栏。创建时使用TBSTYLE_FLAT样式。我认为您还需要CCS_NOPARENTALIGN|CSS_NORESIZE|CC

c++ - WINAPI 代码中的链接器错误

我正在尝试编译以下代码,但出现链接器错误。谢谢你告诉我我错过了什么。#include#pragmacomment(lib,"user32.dll")intmain(){returnMessageBoxA(0,"Message","Warn",0x01);}fatalerrorLNK1104:无法打开文件“user32.dll” 最佳答案 由于LIB文件用于在编译时链接DLL,MessageBoxA驻留在user32.dll中并且需要user32.lib才能正确链接。因此将user32.dll更改为user32.libin#pragm

C++ winAPI 基础 - 通过窗口切换

不太确定如何以清晰的方式解释它。基本上,问题是我正在寻找一种方法来更改当前事件窗口(自己制作的定义,希望它足够容易理解)-直接键入文本的窗口现在。哇哦。我已经发现的是msdnhelp和SetFocus()或SetActiveWindow(),但它没有解决我的问题(或者,也有可能,我只是以错误的方式使用它)。简单地:HWNDDest=GetFocus();...//Somemovingaroundonthe'alt-tablevel':-|SetFocus(Dest);不会再次将目标窗口设置为事件状态。请原谅新手问题,希望不会占用您太多时间。谢谢! 最佳答案

c++ - 在 WinAPI 中使用资源名称

在WinAPI中,您可以通过FindResource访问资源和LoadResource.根据thedocumentationforFindResource,您可以指定资源的名称:lpName[in]Type:LPCTSTRThenameoftheresource.Alternately,ratherthanapointer,thisparametercanbeMAKEINTRESOURCE(ID),whereIDistheintegeridentifieroftheresource.Formoreinformation,seetheRemarkssectionbelow.我有两个问题:

c++ - typedef-name 作为基类 : illegal but widely tolerated

[class.derived]的第一段说的是基类说明符,Ifthenamefoundisnotaclass-name,theprogramisill-formed.但是,一个simple测试表明Comeau和g++-ansi-pedantic都接受typedef-name作为基础。Boostheader上的简单grep-r'[^:]:mpl'表明流行的库通常依赖于这种行为。是否有任何编译器实际上拒绝了基说明符中类的typedef?GCC甚至检查基类类型是否不是const,这改进了非标准功能。有解决办法吗?我唯一能想到的就是用C++11别名模板替换typedef。一个模板化的别名声明声明

c++ - 关于 WINAPI 错误处理

我正在用C++编写。我的大部分代码在失败时都会抛出异常。有时我不得不处理面向C且不抛出的WindowAPI。因此,每次我调用WINAPI函数时,我都会检查返回值,如果它指示错误,我会使用GetLastError()来检索具体的错误代码。然后我将该错误代码转换为错误字符串并基于它抛出异常。例如:HANDLEph=OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,pid);if(!ph){throwstd::runtime_error(win_error_to_string(GetLastError()));}我想知道是否适合编写一个通用包装器来调用W