利用ini文件给程序创建动态菜单

利用ini文件给程序创建动态菜单

ID:7866620

大小:25.50 KB

页数:3页

时间:2018-03-01

利用ini文件给程序创建动态菜单_第1页
利用ini文件给程序创建动态菜单_第2页
利用ini文件给程序创建动态菜单_第3页
资源描述:

《利用ini文件给程序创建动态菜单》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、利用INI文件给程序创建动态菜单DPG:xinhaifu提供加入时间:2002年8月23日显示次数:536象Word那样,在“文件”菜单中可以找到我们最近打开或编辑过的文件。这是程序在运行时创建了动态菜单的缘故。VB程序实现此功能有很多文章探讨过,但大都着眼于Windows的注册表。我们的注册表早已发福了,有没有办法不让她再增加负担?用INI文件!INI文件是系统、应用程序的配置文件。它可以使得我们的VB程序更具灵活性,充分地利用它自然也能够实现动态菜单的创建。下面给个例子。首先,我们得给程序添加一个模块,在模块中申明读写INI用的两个WindowsAPI函数,并在其中封

2、装自定义的读取、写入INI的函数:OptionExplicit'读写INI的API函數PublicDeclareFunctionWritePrivateProfileStringLib"kernel32"Alias"WritePrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpStringAsAny,ByVallpFileNameAsString)AsLongPublicDeclareFunctionGetPrivateProfileStringLib"kerne

3、l32"Alias"GetPrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpDefaultAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong,ByVallpFileNameAsString)AsLong'自定义写入INI函數PublicFunctionWriteIni(ByValsectionAsString,ByValkeyAsString,ByValvalueAsString)AsBooleanDi

4、mxAsLong,BuffAsString*128,IAsIntegerBuff=value+Chr(0)x=WritePrivateProfileString(section,key,Buff,App.Path+"MenuSetting.ini")WriteIni=xEndFunction'自定义读取INI函數PublicFunctionReadIni(ByValsectionAsString,ByValkeyAsString)AsStringDimxAsLong,BuffAsString*128,IAsIntegerx=GetPrivateProfileString

5、(section,key,"",Buff,128,App.Path+"MenuSetting.ini")I=InStr(Buff,Chr(0))ReadIni=Trim(Left(Buff,I-1))EndFunction接着,回到主窗体,给主窗体添加若干控件、编辑菜单(控件和菜单名称详见代码),其中,“文件”菜单的动态菜单要用数组,其Index号可以从1开始,注意将这些动态菜单设为不可见。本例可保存最近打开的三个文件,如需要多一些可自行添加。以下是主窗体代码:OptionExplicit'声明用于判断写入INI中的FileName(n)中的n变量DimIAsStrin

6、g'为了能添在FileName串的后面,声明为StringPrivateSubForm_Load()I=0'初值Text1.Left=0Text1.Top=0Text1=""Text1.FontSize=12Me.Caption="txtEditor"Me.Width=8000Me.Height=6000AddMenu'添加动态菜单EndSubPrivateSubForm_Resize()'这个没什么可说,为了使例程完整而已Text1.Width=Me.ScaleWidthText1.Height=Me.ScaleHeightEndSubPrivateSubmnuExit

7、_Click()End'退出EndSub'打开文件PrivateSubmnuOpen_Click()DimsFAsStringCommonDialog1.Filter="文档文件(*.txt)

8、*.txt

9、所有文件(*.*)

10、*.*"CommonDialog1.ShowOpenOpenCommonDialog1.FileNameForInputAs#1Text1.Text=StrConv(InputB$(LOF(1),1),vbUnicode)Close#1IfI>=3ThenI=0'如大于等于3则返回原值I=I+1sF="F

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。