菜单标题中有多个 & 符号,能否在不改动标题!!!(俺知道添加&的办法)的情况下,让其正确显示出来呢?
解决方案 »
- VB怎么做一个视频监控系统
- 如何锁住正在使用的文件
- 请问哪有介绍关于VC++,ADO Extensions比较好的教材
- 如何将windows的录音机集成到我的软件中呢?
- 关于动态链接文件和API函数的理解?
- 一个关于SQL SERVER的问题
- 问一个怪问题!!! 关于vb 的 dll的
- VS.Net 简体中文版好像出现了 ...
- 如何得到局域网内的所有计算机的ip地址
- 请问各位大虾:如何使窗口不再变小
- 在线等!!怎样用Date Report控件将MSHFlexGrid中的记录打印出来,Data Report 控件可以不与MSHFlexGrid控件的数据源相连吗,因为MSHFlex
- DBCON如何传递参数?
加两个"&&"就是正确的显示"&"了
或者,能否发一条消息,就能实现呢?俺不知道,所以才问的,还请各位老大帮帮小弟,谢谢!豆子老大,这回有解吗? :)
如果实在不行的话,能否请豆子老大再详细说一下,如何提高效率?谢谢:)//你真的从效率上考虑的话,你不妨把你菜单名字用结构、数组或集合对象组织起来
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3195
ClientLeft = 165
ClientTop = 735
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3195
ScaleWidth = 4680
StartUpPosition = 3 '窗口缺省
Begin VB.Menu mnuMain
Caption = "Main"
Begin VB.Menu tpl
Caption = "tpl"
Index = 0
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'存放所有文件名的数组
Private m_asMenuItems() As StringPrivate Sub Form_Load()
Dim sFilename As String, sTargetDir As String
sFilename = "C:\ft.txt"
sTargetDir = "E:\Downloads\"
GenerateFile sFilename, sTargetDir
m_asMenuItems = GenerateMenu(sFilename)
End Sub'产生包含文件名的文件
Function GenerateFile(ByVal sFilename As String, ByVal sTargetDir As String) As Boolean
Dim lFreeFile As Long
Dim sTmp As String
lFreeFile = FreeFile
Open sFilename For Output As lFreeFile
sTmp = Dir(sTargetDir & "*.*")
Do While sTmp <> ""
Print #lFreeFile, sTargetDir & sTmp
sTmp = Dir
Loop
Close lFreeFile
End Function'产生菜单
Function GenerateMenu(ByVal sFilename As String) As String()
Dim asTmp() As String
Dim lFreeFile As Long
Dim i As Long
lFreeFile = FreeFile
Open sFilename For Input As lFreeFile
i = 0
Do While Not EOF(lFreeFile)
ReDim Preserve asTmp(i)
Line Input #lFreeFile, asTmp(i)
If i > 0 Then Load tpl(i)
tpl(i).Caption = Replace$(asTmp(i), "&", "&&")
i = i + 1
Loop
Close lFreeFile
GenerateMenu = asTmp
End Function'菜单命令
Private Sub tpl_Click(Index As Integer)
ShellExecute 0, "open", m_asMenuItems(Index), "", "", vbNormalFocus
End Sub
tpl(i).Caption = Replace$(asTmp(i), "&", "&&")这一句也通不过:
m_asMenuItems = GenerateMenu(sFilename)
当点击时,根据Index编号取到相应的内容。只是这样做,觉得效率还是低了点,而且还浪费了空间 :(现在俺的做法是直接载入文本内容到菜单标题,结果就是——由于往往&符号在中文字前,所以会在中文下加上下划线,太难看了(如果加在英文前到问题不大)诶,到底是要美观呢,还是效率与空间呢?呵呵,谢谢各位大侠们,暂时只能这样了(虽然俺还有点不死心,希望能找到更好的办法,呵呵)
在快捷菜单组里,就算是单&符号的文件名,也能正确显示的。