问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

几种常见的对话框在PB中是如何实现并调用的技巧。

发布网友 发布时间:2022-04-26 07:43

我来回答

1个回答

热心网友 时间:2022-06-25 10:43

非常实用!---- 1.颜色选择API封装对象nvo_ChooseColor---- 先创建一新非可视用户对象,并声明一局部结构ols_ChooseColor long lstructsize ulong hwndowner ulong hinstance long rgbresult blob lpcustcolors long flags long lcustdata long lpfnhook long lptemplatename 然后定义如下的私有实例变量: Private: Ols_ChooseColor istr_choosecolor long il_custominitcolors[16] blob{64} ibl_customcolors 再声明如下局部外部函数: function boolean ChooseColorA (ref os_choosecolor lpcc) library "comdlg32.dll" 在用户对象的构造事件中加入下述代码: //初始化结构实例变量,转换缺省的颜色数组到一BLOB变量中 blobedit(ibl_customcolors,1,il_custominitcolors) istr_choosecolor.lpcustcolors = ibl_customcolors //设置客户定义颜色的指针 istr_choosecolor.lstructsize = 36 //设置结构尺寸 setnull(istr_choosecolor.hwndowner) //设置父窗变量为空 istr_choosecolor.flags = 1 //设置标志 最后声明一公有用户对象函数: public function boolean of_choosecolor (ref long al_rgbresult) 在函数内加入下述代码: boolean lb_ok istr_choosecolor.rgbresult = al_rgbresult lb_ok = choosecolora (istr_choosecolor) al_rgbresult = istr_choosecolor.rgbresult return lb_ok 保存用户对象名为nvo_ChooseColor即可 使用方法:在需要处加入如下代码 long ll_customcolor nvo_ChooseColor nvo_cc nvo_cc = CREATE nvo_ChooseColor of_choosecolor(ll_customcolor) DESTROY nvo_cc ll_customcolor即含有用户选择的色值 ---- 2.目录选择API封装对象nvo_FolderBrowse---- 先创建一新非可视用户对象,并声明若干局部结构 结构一 ols_shitemid unsignedint cb character abid 结构二 ols_itemidlist shitemid mkid 结构三 ols_browseinfo unsignedlong howner unsignedlong pidlroot string pszdisplayname string lpsztitle unsignedint ulflags unsignedlong lpfn long lparam integer iimage 然后声明如下局部外部函数: Protected: Function unsignedlong SHGetPathFromIDListA ( unsignedlong pidl, ref string pszPath) Library 'shell32' Function unsignedlong SHBrowseForFolderA ( ols_browseinfo lpbrowseinfo ) Library 'shell32' Subroutine CoTaskMemFree(ulong idlist) Library 'ole32' 再声明如下实例变量: Protected: unsignedLong BIF_RETURNONLYFSDIRS = 1 声明一公有对象函数 public function string browseforfolder (window awi_parent, string as_caption) 并加入如下代码 ols_browseinfo lstr_bi ols_itemidlist lstr_idl unsignedlong ll_pidl, ll_r,ll_Null Integer li_pos String ls_Path SetNull( ll_Null ) lstr_bi.hOwner = Handle( awi_Parent ) lstr_bi.pidlRoot = 0 lstr_bi.lpszTitle = as_caption lstr_bi.ulFlags = bif_ReturnOnlyFSDirs lstr_bi.pszDisplayName = Space( 255 ) lstr_bi.lpfn = ll_Null ll_pidl = SHBrowseForFolderA( lstr_bi ) ls_Path = Space( 255 ) ll_R = SHGetPathFromIDListA( ll_pidl, ls_Path ) CoTaskMemFree( ll_pidl ) RETURN ls_Path 保存对象名为nvo_FolderBrowse即可 使用方法:在需要处加入如下代码 nvo_FolderBrowse nvo_fb String ls_path nvo_fb=CREATE nvo_FolderBrowse ls_path = nvo_fb.BrowseForFolder ( handle(parent), '请选择目标路径' ) DESTROY nvo_fb ls_path是用户选择的目录路径 ---- 3.打印机属性设置对话框API封装对象nvo_PrinterSetup---- 先创建一新的非可视用户对象,然后声明如下局部外部函数: function boolean OpenPrinterA (ref string pPrinterName,ref ulong phPrinter,ref ulong pDefault ) library "winspool.drv" function boolean PrinterProperties (ulong hwnd1,ulong hPrinter) library "winspool.drv" function boolean ClosePrinter (ulong hPrinter) library "winspool.drv" 最后声明一公有的用户对象函数: public function boolean of_printersetup (string printername,window awin) 加入下述代码: ulong hwnd //父窗口句柄 ulong prnhd //打印机设备句柄 ulong l=0 hwnd=handle(awin) if openprintera(printername,prnhd,l) =false then return false PrinterProperties(hwnd,prnhd) closeprinter(prnhd) return true 将对象另存为nvo_PrinterSetup即可 使用方法:在需要处加入如下代码(假定为一按钮的点击事件) nvo_PrinterSetup nvo_ps window win win = parent nvo_ps = CREATE nvo_PrinterSetup if not of_printersetup(prnname,win) then messagebox("提示","打开打印机失败!") DESTROY nvo_ps ---- 注:printername是目标打印机名,可用系统当前打印机也可用别的已安装的打印机。通常是从下拉列表控件中获得
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
陌陌发语音出现转码失败怎么办 女孩2010年5月10号阴历3月27早晨9点55分出生的五行缺什么 钟姓男孩名字2023年5月10日出生的 凤眼果有什么营养?凤眼果的这些营养你都知道吗? 专升本成绩多少合格 山东专升本成绩多少合格 山东2022年专升本成绩什么时候出 2024专升本成绩公布时间及入口 2023年山东专升本各专业录取分数线 什么时候出专升本成绩 山东专升本综合素质测评成绩怎么算 我要电的标志怎么画 在asp.net下写javasript脚本调用Shell.BrowseForFolder,没有权限如何解决 有没有一款可以连接手机 电脑的手柄 让学生画出简单的电路图 并说一说电流是怎样流动的 北通W1游戏手柄能连接电脑吗? 我在vb里怎么使用SHBrowseForFolder来确定初始路径 手上拿一个手柄.可以接连电脑玩游戏的 像网球那类的.可以对打的 那个东西叫什么 科技创新大赛科幻画,JI 急用,赶紧帮忙画一幅吧!!! 什么手柄能连上联想电脑 请问小学科学题:画一个简单电路图,怎么画? 有没有一种手柄可以连接电脑也可以连接手机的? Shell的BrowseForFolder方法 Type mismatch 错误 你好在新加坡实习工作证是否有最低工资规定?实习教师岗位是否能要求雇主提供医疗保险 javascript中,browseForFolder路径设置为桌面,提示“缺少对象” VBS 如何使BrowseForFolder在打开时指定选中的文件夹且显示以桌面为根目录的顺序 辅警入职多久才发工作证? vb 中BrowseForFolder 什么意思 有什么用处 怎么用 郑大一附院实习工作证丢了怎么办 特种工作证没下来,拿实习证明去上班行吗? 你好在新加坡实习工作证是否有最低工资规定实习教师岗位是否能要求雇主提供医疗保险 小学生简单科幻画 mocute手柄可以连接电脑吗? 如何在VBS脚本中显示“选择文件对话框”或“选择目录对话框” 问网友们一下:有哪种手柄是可以连接电脑玩街机或模拟器游戏的? vb 打开文件夹 小学生科幻画 节约 有没有可以连接电脑,又可以连接手机的游戏手柄 js如何打开本地资源管理器 苹果手怎么连电脑 xbox360无线手掣可不可以连电脑 3G网络手能连在台式电脑上吗 PSP能连接PC当手柄用吗,有什么步骤 电脑声音里没有显示7.1声道选项是怎么回事啊,耳机是7.1声道的,就是没有显示? 这是什么手柄?怎么可以连接到电脑上? Android开发如何获得第三方应用Widget的包名和类名 handjoy手柄可以连接电脑吗 genie talk 最新版中韩在线翻译,安卓版本 为什么我的电脑没有7.1声道 js中用链接实现打开本地文件对话框 电脑声道没有7.1