合并 ARGB 分量并返回 ARGB 颜色数值
合并 ARGB 分量并返回 ARGB 颜色数值
表示 Alpha 值的 A 分量范围为 0~0xFF,0 为完全透明。
ARGB 颜色值一般用于 GDI+,plus 控件等
ARGB 值内存格式用字符串表示就是 '\xBB\xGG\xRR\xAA'。
用结构体表示就是 { BYTE b;BYTE g;BYTE r;BYTE a; }
数值的书写顺序是反过来的,所以写为 0xAARRGGBB 。
那么为什么叫 ARGB 颜色值,而不是 BGRA 颜色值呢?
一定要找个理由就是念着顺口,GDI+ 头文件就是这样命名,约定俗成就是规则。
纠结这个正反顺序,就好比纠结『东西』为什么不叫『西东』一样毫无意义
位图信息
!gdi_bitmap.bmType = 类型
合并 RGB 分量并返回 RGB 颜色数值
合并 RGB 分量并返回 RGB 颜色数值,
可选用参数 @4 指定 A 分量返回 RGBA 颜色数值。
RGB 颜色值一般用于GDI,传统控件。
RGB 颜色值存储格式用字符串表示为 '\xRR\xGG\xBB',
用结构体表示 { BYTE r;BYTE g;BYTE b; }
数值虽然也是低位存储在前(小端字节序),但书写数值时是高位在前,
所以RGB 颜色数值写为 0xBBGGRR,这不叫『写反了』。
纠结这个正反顺序,就好比纠结『东西』为什么不叫『西东』一样毫无意义
创建 RGBQUAD 结构体
RGB 颜色数值转 ARGB 颜色数值,
RGB 分量中 R、B 的位置互换,并修改高位透明分量为 0xFF
创建透明混合参数,
透明度为1到255,默认为255
透明选项默认为1
gdi.clientBuffer( hwnd,
function( hdc,hMemDc,hMemBitmap,width,height ){
/*窗口客户区双缓冲绘图,此函数不可返回任何值*/
::BitBlt(hdc, 0, 0, width, height, hMemDc, 0, 0, 0xCC0020/*_SRCCOPY*/);
}
)
解析网页兼容的颜色代码
支持 #RGB,#RRGGBB,#RRGGBBAA 三种格式,#号可省略,
#RGB,#RRGGBB 返回 GDI 兼容的RGB值
#RRGGBBAA 返回 GDI+ 兼容的 ARGB 格式颜色值
失败返回null
生成网页兼容的文本
如果是 ARGB 数值,返回 #RRGGBBAA 格式字符串
#RRGGBBAA 可用于 HTMLayout,Sciter,以及新版的 Chrome 也可以支持
gdi.doubleBuffer( hdc,width,height,
function( hdc,hMemDc,hMemBitmap ){
/*双缓冲绘图,此函数不可返回任何值*/
::BitBlt(hdc, 0, 0, width, height, hMemDc, 0, 0, 0xCC0020/*_SRCCOPY*/);
}
)
九宫格贴图
在目标DC上绘图
t,r,b,l依次为上、右、下、左九宫格切图,
如果不指定r,t,b,l则显示原图不拉伸
r,t,b,l都为0则直接拉伸全图
在hdc指定句柄的绘图设备上移动到x1,y1坐标,
开始画线到x2,y2指定的坐标点,
可选添加任意个坐标点参数继续向后画线
输出文本
hdc参数指定绘图设备句柄,font参数指定LOGFONT字体对象,
rect应使用::RECT结构体指定输出区块,
format为可选参数使用_DT_前缀常量指定输出选项
居中对齐输出文本,
hdc参数指定绘图设备句柄,font参数指定LOGFONT字体对象,
rect应使用::RECT结构体指定输出区块,
format为可选参数使用_DT_前缀常量指定输出选项
使用clr,clr2指定的渐变颜色填充矩形
hdc参数指定绘图设备句柄
rect应使用::RECT结构体指定输出区块
mode为可选参数,默认为水平渐变,指定为1则为垂直方向渐变
使用color指定的颜色填充矩形
hdc参数指定绘图设备句柄
rect应使用::RECT结构体指定输出区块
如果不需要指定新的颜色,可改为调用::PatBlt即可
如果需要指定笔刷,调用::FillRect即可
获取位图数据
返回值为cdata指针,以及数据读取长度
无数据返回空值
成功返回读取内存,以及读取长度
返回BITMAT结构体
返回当前设备位图对象
获取屏幕DPI,即每英寸像素点数,
参数可选
获取屏幕DPI缩放系数,
参数可选,
返回2个表示百分比的小数值,1表示100%,
第一个返回值为 x 轴缩放,第二个返回值为 y 轴缩放,
2个返回值通常都是一样的
返回窗口字体,LOGFONT对象
如果窗口仍然是使用系统字体,返回空值
不应使用此函数获取系统字体
获取图标信息
参数不可为空
抓像素颜色
句柄为可选参数
此函数返回R(红),G(绿),B(蓝)三个分量。
函数名由 "get R,G,B " 组合而成,表示三个返回值的顺序。
参数 @1 指定 RGB 颜色数值。
RGB 颜色值一般用于GDI,传统控件。
RGB 颜色值存储格式用字符串表示为 '\xRR\xGG\xBB',
用结构体表示 { BYTE r;BYTE g;BYTE b; }
数值虽然也是低位存储在前(小端字节序),但书写数值时是高位在前,
所以RGB 颜色数值写为 0xBBGGRR,这不叫『写反了』。
纠结这个正反顺序,就好比纠结『东西』为什么不叫『西东』一样毫无意义
返回R(红),G(绿),B(蓝),A(透明度) 4个分量
函数名由 "get R,G,B,A " 组合而成,表示四个返回值的顺序
表示 Alpha 值的 A 分量范围为 0~0xFF,0 为完全透明。
ARGB 颜色值一般用于 GDI+,plus 控件等
ARGB 值内存格式用字符串表示就是 '\xBB\xGG\xRR\xAA'。
用结构体表示就是 { BYTE b;BYTE g;BYTE r;BYTE a; }
数值的书写顺序是反过来的,所以写为 0xAARRGGBB 。
那么为什么叫 ARGB 颜色值,而不是 BGRA 颜色值呢?
一定要找个理由就是念着顺口,GDI+ 头文件就是这样命名,约定俗成就是规则。
纠结这个正反顺序,就好比纠结『东西』为什么不叫『西东』一样毫无意义
获取界面缺省字体并转换为LOGFONT
获取系统字体并转换为LOGFONT
获取字符串输出后的宽度,高度,返回2个值
参数@1为目标DC,参数@2指定字符串
gdi.layeredBuffer( winform.hwnd,
function( hdc,hMemDc,hMemBitmap,width,height,left,top,hwnd,blendFunction ){
/*在hMemDc上绘图即可*/
..gdi.updateLayeredWindow( hwnd,hMemDc,::SIZE(width,height) ,blendFunction );
}
)
开始画线到x1,y1指定的坐标点,
可选添加任意个坐标点参数继续向后画线
gdi.paint( hwnd,
function( hdc,width, height,rcPaint,fErase,paintStruct ){
/*此函数只能用于wndproc内部处理_WM_PAINT消息*/
::BitBlt(hdc, 0, 0, width, height, hMemDc, 0, 0, 0xCC0020/*_SRCCOPY*/);
}
);
gdi.paintBuffer( hwnd,
function( hdc,hMemDc,hMemBitmap,width,height,rcPaint,fErase,paintStruct ){
/*专用于_WM_PAINT消息内创建内存DC绘图
此函数自动负责内存DC到DC设备间的双向BitBlt复制操作*/
::BitBlt(hdc, 0, 0, width, height, hMemDc, 0, 0, 0xCC0020/*_SRCCOPY*/);
}
);
ARGB 颜色数值转 RGB 颜色数值,
RGB 分量中 R、B 的位置互换
输出圆角矩形
hdc参数指定绘图设备句柄
rect应使用::RECT结构体指定输出区块,cx,cy指定圆角大小
gdi.selectBrush(
function(hdc,pen,brush){
::FillRect(hdc,::RECT(0,0,100,100),brush);
var font = ::LOGFONT(weight=800;color=0x000000);
gdi.textOut(hdc,font,"TEST",0,0);
/*在指定绘图设备hdc选择新的笔刷和画笔
参数bgolor指定笔刷颜色,参数color指定画笔颜色,如果不指定color则不创建画笔,
注意GDI使用RGB格式的颜色值,用16进制数值可写为0xBBGGRR格式,
width为可选参数用于指定画笔宽度,style为可选参数用于指定画笔样式
回调参数中brush为新的笔刷,如果指定了color参数则回调参数pen为新的画笔
此函数在回调函数执行完以后负责销毁笔刷、画笔并复原绘图设备*/
},hdc,0xFFFFFF,0x000000)
gdi.selectPen(
function(hdc,pen){
gdi.drawLine(hdc,0,0,100,100)/*在指定绘图设备hdc选择新的画笔,参数color指定画笔颜色,
注意GDI使用RGB格式的颜色值,用16进制数值可写为0xBBGGRR格式,
width为可选参数用于指定画笔宽度,style为可选参数用于指定画笔样式
回调参数中pen为新的画笔
此函数在回调函数执行完以后负责销毁画笔并复原绘图设备*/
},hdc,0xFFFFFF,0x000000)
设置窗口字体,返回字体句柄
直接调用此函数必须自行管理字体生命周期
第二个参数是字体句柄、或 LOGFONT 结构体,
使用 LOGFONT 对象作为参数将创建新的逻辑字体句柄,函数将返回该句柄。
参数 @3 仅在使用 point 单位时用于修正窗体口与系统 DPI 不一致的问题。
修改像素颜色
句柄为可选参数
输出文本
hdc参数指定绘图设备句柄,font参数指定LOGFONT字体对象,
可选参数x,y指定输出坐标
更新分层窗口
除参数1以外,所有参数可选
参数用法与同名API相同,请参考微软文档
注意参数顺序与API不同,请参考该函数源码
gdi.windowBuffer( hwnd,
function( hdc,hMemDc,hMemBitmap,width,height ){
/*窗口双缓冲绘图,此函数不可返回任何值*/
::BitBlt(hdc, 0, 0, width, height, hMemDc, 0, 0, 0xCC0020/*_SRCCOPY*/);
}
)
检查参数@1是否 ::LOGFONT 结构体,返回布尔值
默认为1,
即AC_SRC_ALPHA:使用图像自带透明通道
必须是0
必须是0
透明度值 1~255
如果要使用图像本身的透明值,设为255
默认值为255
r;
b;
g;
q;
指向存储像素阵列的数组
调色板颜色位数
高度
调色板颜色数
类型
宽度
每行光栅所占字节数,必须为偶数
是否图标
位图句柄
掩码位图句柄
热点坐标x
热点坐标u
是否为粗体
字符集代码,请参考标准库 gdi 中 _CHARSET 后缀常量
剪辑精度
字体颜色
创建可用于GDI设备的逻辑字体
并返回字体句柄
创建可用于绘图设备的逻辑字体,并返回对象句柄
hdc,hwnd为可选参数用于转换point单位,默认为屏幕dc
参数@3指定是否由当前对象是否持有该字体句柄
删除createIndirect函数创建并管理生存期的字体
必须确认该字体确实不再被使用
分离并返回字体句柄
并将对象的字体句柄置为空,
已分离的句柄必须自行管理生存期并负责释放
字符串相对页面底端角度
字符间距和族
返回点数大小
可选使用参数hdc指定绘图设备句柄,或使用hwnd指定获取hdc的窗口
指定字符的高度,逻辑单位,
字体映射器会将此值转换为设备单位,
默认的 MM_TEXT 映射模式下,这个值也就是像素值
即使用此属性指定字体大小,
aardio 创建的窗口仍然可以默认支持自动DPI缩放
createIndirect 函数创建并管理生存期的字体句柄
不应直接读写此句柄
斜体
字体名称
单个字符相对页面底端角度
输出精度
字体点数,
此为内部只写属性,
不应当使用直接此属性读写字体点数,
请改用 getPointSize, setPointSize 函数
输出质量
pt 参数指定字体点数,
1点等于 1/72 英寸
在不同DPI设置的显示器上,每英寸对应的点数与像素不相同,
使用点数单位可在不同DPI设置的显示器上得到相同大小的字体,
如果指定了@hdc 或 @hwnd 参数,则自动调用 stripPoint 函数并更新 h 属性指定的逻辑单位
添加删除线
如果指定了字体点数,转换并更新 h 属性的逻辑单位,
可选使用参数 @hdc 指定绘图设备句柄,或使用 @hwnd 指定获取 @hdc 的窗口
添加下划线
指定字符的宽度,逻辑单位,
一般不建议指定此参数
重量,0到1000
0为默认值,标准字体为400
粗体为700
g.api("AbortPath","int(ptr hdc)");
```
<a id="::AngleArc"></a>
### ::AngleArc
```aardio
g.api("AngleArc","int(ptr hdc,int x,int y,int dwRadius,float eStartAngle,float eSweepAngle)");
```
<a id="::Arc"></a>
### ::Arc
```aardio
g.api("Arc","int(ptr hdc,int X1,int Y1,int X2,int Y2,int X3,int Y3,int X4,int Y4)");
```
<a id="::ArcTo"></a>
### ::ArcTo
```aardio
g.api("ArcTo","int(ptr hdc,int X1,int Y1,int X2,int Y2,int X3,int Y3,int X4,int Y4)");
```
<a id="::BeginPaint"></a>
### ::BeginPaint
```aardio
u.api("BeginPaint","ptr(addr hwnd,struct &lpPaint)");
```
<a id="::BeginPath"></a>
### ::BeginPath
```aardio
g.api("BeginPath","int(ptr hdc)");
```
<a id="::BitBlt"></a>
### ::BitBlt
```aardio
g.api("BitBlt","int(ptr hDestDC,int x,int y,int cx,int cy,pointer hSrcDC,int xSrc,int ySrc,int dwRop)");
```
<a id="::CancelDC"></a>
### ::CancelDC
```aardio
g.api("CancelDC","int(ptr hdc)");
```
<a id="::CreateBitmap"></a>
### ::CreateBitmap
```aardio
g.api("CreateBitmap","ptr(int nWidth,int nHeight,INT nPlanes,INT nBitCount,pointer lpBits)");
```
<a id="::CreateCompatibleBitmap"></a>
### ::CreateCompatibleBitmap
```aardio
g.api("CreateCompatibleBitmap","ptr(ptr hdc,int nWidth,int nHeight)");
```
<a id="::CreateCompatibleDC"></a>
### ::CreateCompatibleDC
```aardio
g.api("CreateCompatibleDC","ptr(ptr hdc)");
```
<a id="::CreateDC"></a>
### ::CreateDC
```aardio
g.api("CreateDC","ptr(str drive,str device,str output,struct initData)")
```
<a id="::CreateFont"></a>
### ::CreateFont
```aardio
g.api("CreateFont","ptr(int H,int W,int E,int O,int W,bool I,bool u,int S,int C,int OP,int CP,int Q,int PAF,ustring F)");
```
<a id="::CreateFontIndirect"></a>
### ::CreateFontIndirect
```aardio
g.api("CreateFontIndirect","ptr(struct lplf)" )
```
<a id="::CreateHatchBrush"></a>
### ::CreateHatchBrush
```aardio
g.api("CreateHatchBrush","ptr(int nIndex,int color)");
```
<a id="::CreatePatternBrush"></a>
### ::CreatePatternBrush
```aardio
g.api("CreatePatternBrush","ptr(ptr hbm)" )
```
<a id="::CreatePen"></a>
### ::CreatePen
```aardio
g.api("CreatePen","ptr(int style,int width,int color)");
```
<a id="::CreateSolidBrush"></a>
### ::CreateSolidBrush
```aardio
g.api("CreateSolidBrush","ptr(int crColor)");
```
<a id="::DRAWITEMSTRUCT"></a>
### ::DRAWITEMSTRUCT
```aardio
class {
INT CtlType;
INT CtlID;
INT itemID;
INT itemAction;
INT itemState;
addr hwndItem;
pointer hDC;
struct rcItem = ::RECT();
ptr itemData;
}
```
<a id="::DeleteDC"></a>
### ::DeleteDC
```aardio
g.api("DeleteDC","bool(PTR hdc)");
```
<a id="::DeleteObject"></a>
### ::DeleteObject
```aardio
g.api("DeleteObject","bool(PTR hObj)");
```
<a id="::DrawEdge"></a>
### ::DrawEdge
```aardio
u.api("DrawEdge","int(ptr hdc,struct qrc,int edge,int grfFlags)");
```
<a id="::DrawFocusRect"></a>
### ::DrawFocusRect
```aardio
u.api("DrawFocusRect","int(ptr hdc,struct lpRect)");
```
<a id="::DrawFrameControl"></a>
### ::DrawFrameControl
```aardio
u.api("DrawFrameControl","int(ptr hdc,struct rc,int un1,int un2)");
```
<a id="::DrawIconEx"></a>
### ::DrawIconEx
```aardio
u.api("DrawIconEx","int(PTR hdc,int x,int y,pointer hIcon,int cx,int cy,int stepIfAni,pointer hbrFlickerFreeDraw,int flags )" );
```
<a id="::DrawText"></a>
### ::DrawText
```aardio
u.api("DrawText","int(ptr hdc,ustring lpStr,int nCount,struct& lpRect,int wFormat)");
```
<a id="::Ellipse"></a>
### ::Ellipse
```aardio
g.api("Ellipse","int(ptr hdc,int X1,int Y1,int X2,int Y2)");
```
<a id="::EndPaint"></a>
### ::EndPaint
```aardio
u.api("EndPaint","int(addr hwnd,struct lpPaint)");
```
<a id="::EndPath"></a>
### ::EndPath
```aardio
g.api("EndPath","int(ptr hdc)");
```
<a id="::FillPath"></a>
### ::FillPath
```aardio
g.api("FillPath","int(ptr hdc)");
```
<a id="::FillRect"></a>
### ::FillRect
```aardio
u.api("FillRect","int(ptr hdc,struct& lpRect,pointer hBrush)");
```
<a id="::FrameRect"></a>
### ::FrameRect
```aardio
u.api("FrameRect","int(ptr hdc,struct& lpRect,pointer hBrush)");
```
<a id="::GRADIENT_RECT"></a>
### ::GRADIENT_RECT
```aardio
class {
int UpperLeft;
int LowerRight;
}
```
<a id="::GdiGradientFill"></a>
### ::GdiGradientFill
```aardio
g.api("GdiGradientFill","int(ptr hdc,struct pVertex,int nVertex,struct mesh,int count,int mode)");
```
<a id="::GetBitmapBits"></a>
### ::GetBitmapBits
```aardio
g.api("GetBitmapBits","int(ptr hbmp,int len,ptr bits)")
```
<a id="::GetBkColor"></a>
### ::GetBkColor
```aardio
g.api("GetBkColor","int(ptr hdc)");
```
<a id="::GetBkMode"></a>
### ::GetBkMode
```aardio
g.api("GetBkMode","int(ptr hdc)");
```
<a id="::GetCurrentObject"></a>
### ::GetCurrentObject
```aardio
g.api("GetCurrentObject","ptr(ptr hdc,int type)");
```
<a id="::GetDC"></a>
### ::GetDC
```aardio
u.api("GetDC","ptr(addr hwnd)");
```
<a id="::GetDCEx"></a>
### ::GetDCEx
```aardio
u.api("GetDCEx","ptr(addr hwnd,int hrgnClip,int flags)");
```
<a id="::GetDeviceCaps"></a>
### ::GetDeviceCaps
```aardio
g.api("GetDeviceCaps","int(ptr hdc,int nIndex)");
```
<a id="::GetObject"></a>
### ::GetObject
```aardio
g.api("GetObject","int(ptr hObj,int nCount,struct& lpObject)");
```
<a id="::GetPixel"></a>
### ::GetPixel
```aardio
g.api("GetPixel","int(ptr hdc,int x,int y)");
```
<a id="::GetStockObject"></a>
### ::GetStockObject
```aardio
g.api("GetStockObject","ptr(int i)" )
```
<a id="::GetStretchBltMode"></a>
### ::GetStretchBltMode
```aardio
g.api("GetStretchBltMode","int(ptr hdc)");
```
<a id="::GetSysColor"></a>
### ::GetSysColor
```aardio
u.api("GetSysColor","int(int nIndex)");
```
<a id="::GetTextAlign"></a>
### ::GetTextAlign
```aardio
g.api("GetTextAlign","int(PTR hdc)")
```
<a id="::GetTextColor"></a>
### ::GetTextColor
```aardio
g.api("GetTextColor","int(ptr hdc)");
```
<a id="::GetWindowDC"></a>
### ::GetWindowDC
```aardio
u.api("GetWindowDC","ptr(addr hwnd)" )
```
<a id="::LOGFONT()"></a>
### ::LOGFONT()
创建字体[LOGFONT结构体]
可调用createIndirect生成字体句柄
gdi.textOut,gdi.drawText 等函数可以直接使用此对象作为参数
所有窗口及控件的setFont函数可使用此对象作为参数
[返回对象:logfontObject](#logfontObject)
<a id="::LOGFONT(name="Tahoma";point=12 )"></a>
### ::LOGFONT(name="Tahoma";point=12 )
创建字体对象
参数表可以使用键值对指定LOGFONT结构体中的字段值,
参数也可以是另一个LOGFONT结构体,此时复制并创建新的结构体
point指定字体大小,以点数为单位
<a id="::LineTo"></a>
### ::LineTo
```aardio
g.api("LineTo","bool(ptr hdc,int x,int y)");
```
<a id="::MEASUREITEMSTRUCT"></a>
### ::MEASUREITEMSTRUCT
```aardio
class {
INT CtlType;
INT CtlID;
INT itemID;
INT itemWidth;
INT itemHeight;
ptr itemData;
}
```
<a id="::MoveToEx"></a>
### ::MoveToEx
```aardio
g.api("MoveToEx","bool(ptr hdc,int x,int y,struct& lpPoint)");
```
<a id="::PAINTSTRUCT"></a>
### ::PAINTSTRUCT
```aardio
class {
pointer hdc;
int fErase;
struct rcPaint = ::RECT();
int fRestore;
int fIncUpdate;
BYTE rgbReserved[32];
}
```
<a id="::PatBlt"></a>
### ::PatBlt
```aardio
g.api("PatBlt","int(PTR hDc,int x,int y,int cx,int cy,INT rop)" )
```
<a id="::PrintWindow"></a>
### ::PrintWindow
```aardio
u.api("PrintWindow","int(addr hwnd,pointer hdcBlt,int nFlags)");
```
<a id="::ReleaseDC"></a>
### ::ReleaseDC
```aardio
u.api("ReleaseDC","bool(addr hwnd,PTR hdc)");
```
<a id="::RoundRect"></a>
### ::RoundRect
```aardio
g.api("RoundRect","int(ptr hdc,int l,int t,int r,int b,int cx,int cy)");
```
<a id="::SelectClipPath"></a>
### ::SelectClipPath
```aardio
g.api("SelectClipPath","int(ptr hdc,int iMode)");
```
<a id="::SelectObject"></a>
### ::SelectObject
```aardio
g.api("SelectObject","ptr(PTR hdc,ptr hObj)");
```
<a id="::SetBkColor"></a>
### ::SetBkColor
```aardio
g.api("SetBkColor","int(ptr hdc,int color)");
```
<a id="::SetBkMode"></a>
### ::SetBkMode
```aardio
g.api("SetBkMode","int(ptr hdc,int mode)");
```
<a id="::SetBrushOrgEx"></a>
### ::SetBrushOrgEx
```aardio
g.api("SetBrushOrgEx","int(ptr hdc,int xOrg,int yOrg,struct &pt)");
```
<a id="::SetPixel"></a>
### ::SetPixel
```aardio
g.api("SetPixel","int(ptr hdc,int x,int y,int crColor)");
```
<a id="::SetStretchBltMode"></a>
### ::SetStretchBltMode
```aardio
g.api("SetStretchBltMode","int(ptr hdc,int nStretchMode)");
```
<a id="::SetTextAlign"></a>
### ::SetTextAlign
```aardio
g.api("SetTextAlign","int(PTR hdc,INT align)")
```
<a id="::SetTextColor"></a>
### ::SetTextColor
```aardio
g.api("SetTextColor","int(ptr hdc,int crColor)");
```
<a id="::StretchBlt"></a>
### ::StretchBlt
```aardio
g.api("StretchBlt","int(ptr hdc,int x,int y,int nWidth,int nHeight,pointer hSrcDC,int xSrc,int ySrc,int nSrcWidth,int nSrcHeight,int dwRop)");
```
<a id="::TRIVERTEX"></a>
### ::TRIVERTEX
```aardio
class {
int x;
int y;
WORD Red;
WORD Green;
WORD Blue;
WORD Alpha;
}
```
<a id="::TextOut"></a>
### ::TextOut
```aardio
g.api("TextOut","int(ptr hdc,int x,int y,ustring lpString,int nCount)");
```
<a id="::TransparentBlt"></a>
### ::TransparentBlt
```aardio
g.api("GdiTransparentBlt","int(ptr hdcDest,int xoriginDest,int yoriginDest,int wDest,int hDest,pointer hdcSrc,int xoriginSrc,int yoriginSrc,int wSrc,int hSrc,INT crTransparent)");
```
### 自动完成常量
_ANSI_CHARSET=0
_ARABIC_CHARSET=0xB2
_BALTIC_CHARSET=0xBA
_BLACKNESS=0x42
_CHINESEBIG5_CHARSET=0x88
_CLR_DEFAULT=0xFF000000
_CLR_NONE=-1
_DEFAULT_CHARSET=1
_DSTINVERT=0x550009
_EASTEUROPE_CHARSET=0xEE
_GB2312_CHARSET=0x86
_GREEK_CHARSET=0xA1
_HANGEUL_CHARSET=0x81
_HANGUL_CHARSET=0x81
_HEBREW_CHARSET=0xB1
_JOHAB_CHARSET=0x82
_MAC_CHARSET=0x4D
_MERGECOPY=0xC000CA
_MERGEPAINT=0xBB0226
_NOTSRCCOPY=0x330008
_NOTSRCERASE=0x1100A6
_OEM_CHARSET=0xFF
_PATCOPY=0xF00021
_PATINVERT=0x5A0049
_PATPAINT=0xFB0A09
_RUSSIAN_CHARSET=0xCC
_SHIFTJIS_CHARSET=0x80
_SRCAND=0x8800C6
_SRCCOPY=0xCC0020
_SRCERASE=0x440328
_SRCINVERT=0x660046
_SRCPAINT=0xEE0086
_STRETCH_ANDSCANS=0x1
_STRETCH_DELETESCANS=0x3
_STRETCH_HALFTONE=0x4
_STRETCH_ORSCANS=0x2
_SYMBOL_CHARSET=2
_THAI_CHARSET=0xDE
_TURKISH_CHARSET=0xA2
_ULW_ALPHA=0x2
_ULW_COLORKEY=0x1
_ULW_OPAQUE=0x4
_VIETNAMESE_CHARSET=0xA3
_WHITENESS=0xFF0062
[Markdown 格式](_.html.md)