如何使用API画出ICON的Normal,Selected,Disabled,Cut状态 我的ICON在程序运行时由用户添加,我是存在StdPicture对像,最多可以有50个,如何使用API画出ICON的Normal,Selected,Disabled,Cut状态如果网上有原代码,请推荐一些,谢啦。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其中,Normal和Disabled可以用GDI函数DrawState来绘制,其他的状态没有标准,由你自己决定。 Selected我要的效果是那种好像看起来有些格子在上面的那种,或都加一层薄薄的蓝色也行,而Cut是变得有点透明的那种 先用 DrawState 画上,然后再按要求自己画,用 AlphaBlend 函数。Private Declare Function DrawState Lib "user32" Alias "DrawStateA" ( _ ByVal hdc As Long, _ ByVal hBrush As Long, _ ByVal lpDrawStateProc As Long, _ ByVal lParam As Long, _ ByVal wParam As Long, _ ByVal n1 As Long, _ ByVal n2 As Long, _ ByVal n3 As Long, _ ByVal n4 As Long, _ ByVal un As Long) _As LongPrivate Const DST_COMPLEX = &H0 '绘图在由lpDrawStateProc参数指定的回调函数期间执行,lParam和wParam会传递给回调事件Private Const DST_TEXT = &H1 'lParam代表文字的地址(可使用一个字串别名),wParam代表字串的长度Private Const DST_PREFIXTEXT = &H2 '与DST_TEXT类似,只是 & 字符指出为下各字符加上下划线Private Const DST_ICON = &H3 'lParam包括图标的句柄Private Const DST_BITMAP = &H4 'lParam包括位图的句柄Private Const DSS_NORMAL = &H0 '普通图像Private Const DSS_UNION = &H10 '图像进行抖动处理Private Const DSS_DISABLED = &H20 '图象具有浮雕效果Private Const DSS_MONO = &H80 '用hBrush描绘图像Private Const DSS_RIGHT = &H8000 '无任何作用Private Declare Function AlphaBlend Lib "msimg32" ( _ ByVal hDestDC As Long, _ ByVal nXOriginDest As Long, _ ByVal nYOriginDest As Long, _ ByVal nWidthDest As Long, _ ByVal hHeightDest As Long, _ ByVal hSrcDC As Long, _ ByVal nXOriginSrc As Long, _ ByVal nYOriginSrc As Long, _ ByVal nWidthSrc As Long, _ ByVal nHeightSrc As Long, _ ByVal pblend As Long) _As BooleanPrivate Type BLENDFUNCTION BlendOp As Byte BlendFlags As Byte SourceConstantAlpha As Byte AlphaFormat As ByteEnd TypePrivate Const AC_SRC_ALPHA = &H1Private Const AC_SRC_OVER = &H0 为什么我用paintpicture达不到两图的“与"效果。 找个东西 如何解决set rs=con.execute存储过程速度慢 如何读取注册表键值 新手上路 关于对象的引用 十万火急呀,急救急救!!!!!!在线期待呀 如何修复ACCESS2000数据库? datagrid的问题?急啊??? 300高分求解VBA问题!只能先给183分,其他的回答后一次性给。 WINSOCK如何判断连接失败,急啊急!!(不要冠水啊) 函数调用与窗口显示
ByVal hdc As Long, _
ByVal hBrush As Long, _
ByVal lpDrawStateProc As Long, _
ByVal lParam As Long, _
ByVal wParam As Long, _
ByVal n1 As Long, _
ByVal n2 As Long, _
ByVal n3 As Long, _
ByVal n4 As Long, _
ByVal un As Long) _
As Long
Private Const DST_COMPLEX = &H0 '绘图在由lpDrawStateProc参数指定的回调函数期间执行,lParam和wParam会传递给回调事件
Private Const DST_TEXT = &H1 'lParam代表文字的地址(可使用一个字串别名),wParam代表字串的长度
Private Const DST_PREFIXTEXT = &H2 '与DST_TEXT类似,只是 & 字符指出为下各字符加上下划线
Private Const DST_ICON = &H3 'lParam包括图标的句柄
Private Const DST_BITMAP = &H4 'lParam包括位图的句柄
Private Const DSS_NORMAL = &H0 '普通图像
Private Const DSS_UNION = &H10 '图像进行抖动处理
Private Const DSS_DISABLED = &H20 '图象具有浮雕效果
Private Const DSS_MONO = &H80 '用hBrush描绘图像
Private Const DSS_RIGHT = &H8000 '无任何作用Private Declare Function AlphaBlend Lib "msimg32" ( _
ByVal hDestDC As Long, _
ByVal nXOriginDest As Long, _
ByVal nYOriginDest As Long, _
ByVal nWidthDest As Long, _
ByVal hHeightDest As Long, _
ByVal hSrcDC As Long, _
ByVal nXOriginSrc As Long, _
ByVal nYOriginSrc As Long, _
ByVal nWidthSrc As Long, _
ByVal nHeightSrc As Long, _
ByVal pblend As Long) _
As Boolean
Private Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Private Const AC_SRC_ALPHA = &H1
Private Const AC_SRC_OVER = &H0