云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > pb+api实际应用

pb+api实际应用

  • 62 次阅读
  • 3 次下载
  • 2025/7/14 5:13:50

type devmode from structure string dmdevicename integer dmspecversion integer dmdriverversion integer dmsize

integer dmdriverextra long dmfields

integer dmorientation integer dmpapersize integer dmpaperlength integer dmpaperwidth integer dmscale integer dmcopies

integer dmdefaultsource integer dmprintquantity integer dmcolor integer dmduplex

integer dmyresolution integer dmttoption integer dmcollate string dmformname

integer dmunusedpadding long dmbitsperpel long dmpelswidth long dmpelsheight long dmdisplayflags

long dmdisplayfrequency end type

定义外部函数引用声明:

Function long EnumDisplaySettings (long lpszDeviceName, long iModeNum , lpDevMode As DevMode) Library \\

Function long ChangeDisplaySettings (DevMode lpDevMode , long dwflags) Library \

Function long ExitWindowsEx (long uFlags , long dwReserved ) Library \定义实例变量:

Constant long EWX_REBOOT = 2// 注释: 重开机 Constant long CCDEVICENAME = 32 Constant long CCFORMNAME = 32

Constant long DM_BITSPERPEL = 262144

Constant long DISP_CHANGE_SUCCESSFUL = 0 Constant long DISP_CHANGE_RESTART = 1 Constant long CDS_UPDATEREGISTRY = 1

DevMode DevM 实现代码:

w_example窗口的命令按钮cb_1.clicked: boolean a long i long b long ans

a = EnumDisplaySettings(0, 0, DevM) //注释:Initial Setting DevM.dmBitsPerPel = 8 //注释:设定成256色 DevM.dmFields = DM_BITSPERPEL

b = ChangeDisplaySettings(DevM, 0) If b = DISP_CHANGE_RESTART Then

ans = messagebox(\提示\要重开机设定才能完成,重开?\question!,yesno!)

If ans = 1 Then

b = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)

ExitWindowsEx(EWX_REBOOT, 0)//这个api函数只能在win98上使用,win nt以上须采用别的方法 End If Else

If b <> DISP_CHANGE_SUCCESSFUL Then Messagebox(\提示\设定有误\ End If End If

29、彩色BMP档转成灰度

将RGB想成3D之X,Y,Z轴,则BMP的RGB为(r,g,b)与座标(Y,Y,Y)距离最小时的Y即为灰度值

Y = 0.29900 * R + 0.58700 * G + 0.11400 * B

整数化

Y = ( 9798*R + 19235*G + 3735*B) / 32768 RGB(Y, Y, Y)就可以了 实现步骤:

外部函数引用声明:

Funcation long GetPixel (long hdc , long x , long Y) Library \Funcation long SetPixelV (long hdc , long x , long Y , long crColor ) Library \

Funcation long GetDC(long handle) library \定义实例变量: picture tmpPic

窗口w_example的open事件:

P_1.setredraw(false)// 注释:设定所有Pixel的改变不立即在pictureBox上显示

tmpPic = Picture1.Picture

窗口w_example的cb_1.clicked: long width5, heigh5, rgb5 long hdc5, i , j

long bBlue, bRed, bGreen long y

width5 = unitstopixels(P_1.Width,xunitstopixels!) heigh5 =unitstopixels(P_1.height,yunitstopixels!) hdc5 = getdc(handle(this) For i = 1 To width5 For j = 1 To heigh5

rgb5 = GetPixel(hdc5, i, j) bBlue = Blue(rgb5) bRed = Red(rgb5)

bGreen = Green(rgb5)

Y = (9798 * bRed + 19235 * bGreen + 3735 * bBlue) \\ 32768 rgb5 = RGB(Y, Y, Y)

SetPixelV (hdc5, i, j, rgb5) Next Next

P_1.setredraw(true)// 注释:此时才真正显示Picture End Sub

w_example窗口级函数:

Function long Red(long mlColor )

return wf_and(mlColor,255)//对mlcolor进行位与计算 Function long Green(long mlColor ) return wf_and((mlColor/256) ,255) Function long Blue(long mlColor)

return wf_and ((mlColor /65536) ,255)

30、如何将的游标显示成动画游标

动画在 Windows 底下是 .ani 格式的档案, 要显示此类游标,首先要利用LoadCursorFromFile API 载入.ani 档案, 然或利用 SetSystemCursor API 加以显示。 实现步骤: 定义实例变量

Constant long OCR_NORMAL = 32512 Constant long IDC_ARROW = 32512 外部函数引用声明

Function long LoadCursorFromFile (string lpFileName ) Library \

Function long LoadCursor (ref long hInstance , long lpCursorName) Library \//注释: modified

Function long SetSystemCursor (long hcur , long id ) Library \实现代码: long hCursor

hCursor = LoadCursorFromFile(\欲显示的 .ani 或 .cur 档案名称\SetSystemCursor(hCursor, OCR_NORMAL)

//若要将鼠标游标还原原状, 则是执行以下叙述: long ll_temp ll_temp=0

hCursor = LoadCursor(0, IDC_ARROW) SetSystemCursor(hCursor, OCR_NORMAL)

搜索更多关于: pb+api实际应用 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

type devmode from structure string dmdevicename integer dmspecversion integer dmdriverversion integer dmsize integer dmdriverextra long dmfields integer dmorientation integer dmpapersize integer dmpaperlength integer dmpaperwidth integer dmscale integer dmcopies integer dmdefaultsource integer dmprintquantity integer dmcolor integer dmduplex integer

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com