草庐IT

WINAPI_FAMILY_PARTITION

全部标签

c++ - 如何使用 C++/WinAPI 绘制具有透明背景的文本?

如何使用WinAPI绘制透明颜色的文本?通常我使用SetBkMode(hDC,TRANSPARENT),但现在我需要使用双缓冲区。这样图像绘制正确,但文本绘制不正确(黑色背景)。caseWM_PAINT:{hDC=BeginPaint(hWnd,&paintStruct);SetBkMode(hDC,TRANSPARENT);HDCcDC=CreateCompatibleDC(hDC);HBITMAPhBmp=CreateCompatibleBitmap(hDC,width,height);HANDLEhOld=SelectObject(cDC,hBmp);HFONThFont=(HF

c++ - 海森堡 : WinApi program crashes on some computers

求助!我真是无计可施了。我的程序是一个小的个人笔记管理器(谷歌搜索“cintanotes”)。在某些计算机上(当然我不拥有它们)它在启动后立即崩溃并出现未处理的异常。这些计算机没有什么特别之处,只是它们往往配备AMDCPU。环境:WindowsXP、VisualC++2005/2008、原始WinApi。关于这个“Heisenbug”,可以肯定的是:1)崩溃仅发生在Release版本中。2)一旦我删除了所有与GDI相关的内容,崩溃就会消失。3)BoundChecker没有任何提示。4)写日志显示崩溃发生在局部int变量的声明上!怎么可能呢?内存损坏?任何想法将不胜感激!更新:我已经成功

c++ - 有没有人在 C++/WinAPI 中有类似 FileSystemWatcher 的类?

我需要原始C++/WinAPI中的.NetFileSystemWatcher模拟。我几乎开始使用FindFirstChangeNotification/FindNextChangeNotification自己编写代码,但后来我想到我可能不是第一个需要它的人,也许有人愿意分享。理想情况下,我需要的是一个可以按如下方式使用的类:FileWatcherfw;fw.startWatching("C:\MYDIR","filename.dat",FileWatcher::SIZE|FileWatcher::LAST_WRITE,&myChangeHandler);...fw.stopWatchi

c++ - C 库与 WinApi

许多标准c库(fwrite、memset、malloc)函数在WindowsApi(WriteFile、FillMemory/ZeroMemory、GlobalAlloc)中有直接的等价物。除了可移植性问题,应该使用什么,CLIB或WindowsAPI函数?C函数会调用WindowsApi函数还是相反? 最佳答案 C库没有什么神奇之处。它只是一个用于从操作系统访问公共(public)服务的标准化API。这意味着它是在操作系统之上实现的,使用操作系统提供的API。根据您的情况使用任何有意义的。C库是可移植的,Win32不是。另一方面,

c++ - WinAPI:如何确定网络何时正在识别?

当通过以太网连接一些设备时,我可以看到“网络连接”面板中的适配器状态更改为“识别网络”。我想使用C++WindowsAPI查询此状态。我正在我的项目中实现一些动态ipconfig/all列表。当网络接口(interface)上的网络正在识别时,我想显示“正在识别网络”。我知道INetwork接口(interface),但令人恼火的是它只能通过COM访问。还有别的办法吗?也许来自有关网络接口(interface)本身的信息? 最佳答案 INetwork是怎么知道的?如果你会在系统文件中搜索相关的属性包键L"NA_NetworkClas

windows - WinAPI - 如何绘制虚线?

我使用WinAPIGDI方法创建HPEN:HPENhPen=CreatePen(PS_DOT,1,color);然后使用方法MoveToEx和LineTo画线。事实上,绘制的线是虚线。3个像素为空,3个像素为彩色--虚线。为什么PS_DOT样式不画虚线?如何使用WinAPI绘制虚线? 最佳答案 这是我在CodeProject上找到的MaxHacher的精彩解决方案(http://www.codeproject.com/KB/GDI/DOTTED_PEN.aspx)LOGBRUSHLogBrush;LogBrush.lbColor=c

winapi - 使 MessageBox 保持在其他窗口之上

我有一个调用MessageBox的TimerProc。我希望MessageBox位于其他窗口之上。因此,例如,父窗口设置计时器,然后我在其上移动另一个窗口。当计时器触发时,我想让MessageBox出现在覆盖应用程序的窗口顶部。这可能吗?我应该怎么做? 最佳答案 我想你想让它成为MB_SYSTEMMODAL的系统模式,如所述here.和/或使位于顶部的窗口成为MessageBox的所有者。 关于winapi-使MessageBox保持在其他窗口之上,我们在StackOverflow上找到

windows - 关于进程地址空间中的 NULL-Pointer Assignment Partition 的问题

我正在阅读,下面是一些引述:Eachprocess'virtualaddressspaceissplitintopartitions.Onx8632-BitWindows,thepartitionof0x00000000-0x0000FFFF(inclusive)iscalledNULL-PointerAssignmentPartition.ThispartitionissetasidetohelpprogrammerscatchNULL-pointerassignments.Ifathreadinyouraprocessattemptstoreadfromorwritetoamemo

c++ - 如何在 C++/WinAPI 中通过网络适配器获取发送/接收的字节数

如何在C++/WinAPI中获取网络适配器发送/接收的字节数?我的编程平台是Windows。 最佳答案 查看函数GetTcpStatistics和相关的(GetUdpStatistics等)。转念一想:performancecounters可能会提供另一种更适合您需求的方法。这也可以通过WMI(Win32_PerfFormattedData_Tcpip_NetworkInterface)查询。 关于c++-如何在C++/WinAPI中通过网络适配器获取发送/接收的字节数,我们在Stack

windows - WinAPI:InternetCloseHandle 函数关闭句柄但不关闭连接

我调用wininet\InternetOpenUrlA,然后是wininet\InternetReadFile,完成后我调用wininet\InternetCloseHandle返回True。这意味着句柄已成功关闭,但连接仍处于已建立状态。为什么当我调用wininet\InternetCloseHandle时连接没有关闭? 最佳答案 WinInet可以缓存和重用连接以供将来对同一服务器的请求。 关于windows-WinAPI:InternetCloseHandle函数关闭句柄但不关闭连