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 Long
这个函数可为一幅图象可绘画操作应用各式各样的效果
参数说明:
hDC:Long要在其中会图的设备场景
hBrush:long如状态为DSS_MONO,则指定一个刷子句柄
lpDrawStateProc:long指向一个函数地址的指针。
lParam:long 由图像的类型决定
wParam:long 由图像的类型决定
n1,图像的水平位置
n2,图像的垂直位置
n3,图象宽度
这个函数可为一幅图象可绘画操作应用各式各样的效果
参数说明:
hDC:Long要在其中会图的设备场景
hBrush:long如状态为DSS_MONO,则指定一个刷子句柄
lpDrawStateProc:long指向一个函数地址的指针。
lParam:long 由图像的类型决定
wParam:long 由图像的类型决定
n1,图像的水平位置
n2,图像的垂直位置
n3,图象宽度
解决方案 »
- GSM Modem发送短信息的问题
- 十分诡异的CWebBrowser2显示内存网页的问题,高手帮忙......
- 如何得到一台电脑区别于其他电脑的唯一标志?
- 有谁知道??高手帮帮忙。(为什么丢掉帧数,并且会跳出来)
- CTreeCtrl控件怎样获得选中项在树中位于第几项?
- 关于如何保持窗口处于最前端的问题
- 如何屏蔽键盘上的键呢?
- 急!加分!LoadResource怎么用?还有怎么把资源里的内容写到文件中?
- 怎么看dll文件里的函数!!
- 如何在程序中更改屏幕背景?
- 在文档视图结构中如何得到主帧窗口的指针?
- 用鼠标按住dialog的caption然后拖动鼠标,系统会显示该dialog将会在新的位置的虚线框架,mouseup后dialog就移动到该虚线框架的位置,有没有办法不显示该虚线框架?因为我用了个多边形的dialog,虚线框架却还是原来的矩形。
图象类型
DST_BITMAP
lParam中的句柄
DST_COMPLEX
绘图在由lpDrawStateProc参数指定的回调函数期间执行。lParam和wParam会传递给回调事件
DST_ICON
lParam包括图标句柄
DST_TEXT
lParam代表文字的地址(可使用一个字串别名),wParam代表字串的长度
DST_PREFIXTEXT
与DST_TEXT类似,只是 &
字符指出为下各字符加上下划线
图象状态常数
DSS_NORMAL
普通图象
DSS_UNION
图象进行抖动处理
DSS_DISABLED
图象具有浮雕效果
DSS_MONO
用hBrush描绘图象
DSS_RIGHT
手册未正式说明——经实验证明没有什么作用(原文:Undocumented-experimentation
seems to show no effect.)windows95用它获得我们应用于图象的一些视觉效果;例如,可使位图或其他图象在视觉上进入禁用或抖动状态。对于位图和图标,它在描绘位图或图标的时候应用一种效果。对于文本,既可让函数画出文本,也可在一个回调函数中执行自己的绘图操作。对于复杂的(用户自定义)图象,则必须用一个回调函数。在回调函数执行过程中,用自己的代码将自己希望的任何东西画入设备场景。在这之后,利用DrawState函数应用希望的效果
http://www.csdn.net/expert/topic/486/486765.xml?temp=.6831781
http://go6.163.com/910grtd/vb/wdzp/ddsfdq.htm
你的算法并不能正确的抖动,因为你从PictureBox取得的颜色信息本来就是不对的(在16bit色下),不信你可以使用一些特殊的16M色图片在显卡的16bit色下显示以下,你的方法并不能正确解决。不信你可以下载我的测试图片看看: http://www.guozi.com/files/msn_bmp.zip
因为已经经过抖动运算的图片再进行一次抖动运算,结果可能比较糟糕。