ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 一、画刷类型 * https://docs.microsoft.com/zh-cn/windows/win32/gdi/logical-brush-types * ![](https://img.kancloud.cn/98/8e/988eb96aed764fe0ab157c6bd7a8119e_279x112.png) * 有许多种,选个最简单的solid brush # 二、函数solidbrush 创建纯色画刷 ``` HBRUSH CreateSolidBrush( COLORREF color ); //C++ ::CreateSolidBrush = g.api("CreateSolidBrush","ptr(int crColor)"); //aardio提取函数 ``` # 三、过程 个人理解的,不知道对不对 ![](https://img.kancloud.cn/17/59/1759a1ef0e997a1e91ab52dad4edf386_480x302.png) # 四、代码 * 按上面的过程写,代码如下: 同时把画笔样式设置成不同样式结果不一样也体现出来了 ``` winform.custom.wndproc = function(hwnd,message,wParam,lParam){ select(message) { case 0xF/*_WM_PAINT*/ { gdi.paint( hwnd, function( hdc,width, height,rcPaint,fErase,paintStruct ){ // 创建 画笔样式为0时 var hBrush = ::CreateSolidBrush(0x83B314) var hPen = ::CreatePen(0/*_PS_SOLID*/,50,0x0000FF) // 放入hdc var oBrush = ::SelectObject(hdc,hBrush) var oPen = ::SelectObject(hdc,hPen) // 绘图 ::Ellipse(hdc,50,100,250,300) // 还原画笔画刷 ::SelectObject(hdc,oBrush) ::SelectObject(hdc,oPen) // 删除画笔画刷 ::DeleteObject(hBrush) ::DeleteObject(hPen) // 创建 画笔样式为6时 看看与0的区别 var hBrush = ::CreateSolidBrush(0x83B314) var hPen = ::CreatePen(6/*_PS_INSIDEFRAME*/,50,0x0000FF) // 放入hdc var oBrush = ::SelectObject(hdc,hBrush) var oPen = ::SelectObject(hdc,hPen) // 绘图 ::Ellipse(hdc,300,100,500,300) // 还原画笔画刷 ::SelectObject(hdc,oBrush) ::SelectObject(hdc,oPen) // 删除画笔画刷 ::DeleteObject(hBrush) ::DeleteObject(hPen) var hPen = ::CreatePen(0/*_PS_SOLID*/,1,0xFFFFFF) var oPen = ::SelectObject(hdc,hPen) ::MoveToEx(hdc,0,100,::POINTF()) ::LineTo(hdc,width,100) ::MoveToEx(hdc,0,300,::POINTF()) ::LineTo(hdc,width,300) ::SelectObject(hdc,oPen) ::DeleteObject(hPen) ::BitBlt(hdc, 0, 0, width, height, hMemDc, 0, 0, 0xCC0020/*_SRCCOPY*/); } ); } } } ``` * 实际上aardio已为我们封装好了,应用如下 ``` winform.custom2.wndproc = function(hwnd,message,wParam,lParam){ select(message) { case 0xF/*_WM_PAINT*/ { gdi.paint( hwnd, function( hdc,width, height,rcPaint,fErase,paintStruct ){ gdi.selectBrush( function(hdc,pen,brush){ ::Ellipse(hdc,50,50,300,200) },hdc,0x83B314,0x0000FF,5) ::BitBlt(hdc, 0, 0, width, height, hMemDc, 0, 0, 0xCC0020/*_SRCCOPY*/); } ); } } } ``` * 运行一下 ![](https://img.kancloud.cn/9a/7b/9a7b4bb909151b22db969c104919b42a_691x677.png)