VC++实现拨号上网程序

我就有范儿R

我就有范儿R

2016-02-19 18:43

想要天天向上,就要懂得享受学习。图老师为大家推荐VC++实现拨号上网程序,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

  在Office2000中,就用户界面丰富程度而论,Word以56个工具栏(Toolbar)、50个弹出式菜单(Popup Menu)雄居首位,但Excel(工具栏40个、弹出式菜单51个)和PowerPoint(工具栏43个、弹出式菜单25个)也相差不远。大多数用户可能从来没有见过所有这些工具栏,甚至许多用户不知道Office提供了这么多命令工具。

  虽然我们可以用菜单隐藏或显示一些工具栏,但这个菜单并没有列出全部的工具栏。对于Word,从菜单可以看到的工具栏稍微多几个,但仍远远不到56个。在Excel和PowerPoint也类似。那么,这些丢失的工具栏到哪里去了呢?如何才能看到这些工具栏?如何将这些工具栏显示到菜单中?

  一、工具栏背后的工具栏

  Office工具栏上的相当一部分按钮是所谓的下拉式按钮。单击这些下拉按钮会显示出子菜单。其中一部分子菜单比较特殊,上面带有灰色的横条(Microsoft称之为″移动把手”)。例如Word工具栏的按钮,单击它的小箭头并把鼠标移到移动把手上,灰条颜色变蓝并提示″拖动可使此菜单浮动”。按住移动把手可把菜单从工具栏拖下来,使之浮动,如图1所示。
  一旦菜单拖下来成为浮动的工具栏,菜单下会自动列出该工具栏;如果关闭该工具栏,则菜单下面的名字也不见了。因此,如果要再次显示这个工具栏,还是要重复原来的拖动过程。

  二、用宏显示隐藏工具栏

  大多数可以拖下来的菜单与画图或颜色功能相关,而且要从工具栏访问。下表给出其中一部分工具栏的标题及其名字:

  名字
  标题
  Fill Color
  填充颜色
  Line Color
  线条颜色
  Font Color
  字体颜色
  Shading Color
  底纹色
  Borders
  边框

  在宏中,可以通过名字访问这些菜单,或将这些菜单显示为浮动工具栏。例如,要显示工具栏,可以用如下命令:

  CommandBars(″Font Color″).Visible = True

  再举一个例子。如果经常要为Word文档加上彩色标注,则最好能快速访问、、和四个工具栏。可以写一个子过程:

  Sub ShowCalloutToolbars(OnOrOff As Boolean)
  CommandBars(″Callouts″).Visible = OnOrOff
  CommandBars(″Font Color″).Visible = OnOrOff
  CommandBars(″Line Color″).Visible = OnOrOff
  CommandBars(″Fill Color″).Visible = OnOrOff
  End Sub

  然后用如下两个命令分别显示和隐藏上述四个工具栏:

  ShowCalloutToolbars True
  ShowCalloutToolbars False

  当然,用宏来显示或关闭某些隐藏工具栏,在许多其他情形下也是很有帮助的,这些应用场合就有待读者自己去发现了。

  三、在菜单中列出隐藏工具栏

  如前所述,菜单是不显示隐藏工具栏的,也不存在定制该菜单加入额外工具栏的方法,但这并不是说我们不能将这些工具栏显示在自己创建的菜单中。接下来介绍的方法可以在菜单下面加上一个菜单。图2显示的是Word中的菜单,在其他Office应用中也相似。

  首先我们需要一个宏AutoExec,该宏在Word启动的时候自动运行,调用AddHiddenToolBarsOption,后者在视图菜单的下面增加 菜单。AutoExit在Word关闭的时候运行,调用RemoveHiddenToolBarsOption,删除菜单。

  Sub AutoExec()
  CustomizationContext = NormalTemplate
  AddHiddenToolBarsOption
  End Sub
  Sub AutoExit()
  CustomizationContext = NormalTemplate
  RemoveHiddenToolBarsOption
  End Sub
  Sub AddHiddenToolBarsOption()

  ' 在视图菜单的'工具栏'下面增加'隐藏工具栏'菜单项

  RemoveHiddenToolBarsOption
  With CommandBars(″View″)
  With .Controls.Add(Type:=msoControl弹出式, _
  Before:=.Controls(″工具栏(&T)″).Index + 1)
  .Caption = ″隐藏工具栏(&H)″
  .OnAction = ″ListHiddenToolbars″
  End With
  End With
  End Sub
  Sub RemoveHiddenToolBarsOption()
  On Error Resume Next
  CommandBars(″View″).Controls(″隐藏工具栏(&H)″).Delete
  End Sub

  ListHiddenToolbars在用户单击的时候运行,它的任务是:找出未在菜单列出的工具栏,用这些工具栏的标题构造的子菜单。

  Sub ListHiddenToolbars()
  Dim ExistingBars As String
  Dim TBar As CommandBar
  Dim Ctl As CommandBarControl
  Dim HiddenBarList As CommandBarControl
  Set HiddenBarList = CommandBars.ActionControl

  那么,它是如何得知哪一个工具栏该显示或隐藏呢?首先,对于已经显示在下的工具栏,ListHiddenToolbars用如下代码生成一个标题列表:

  With CommandBars(″View″).Controls(″工具栏(&T)″)
  For i = 1 To .Controls.Count - 1
  ExistingBars = ExistingBars & _
  .Controls(i).Caption & vbCr
  Next
  End With

  ' 清空新创建的子菜单

  For Each Ctl In HiddenBarList.Controls
  Ctl.Delete
  Next

  在这个For循环中,程序遍历菜单,在ExistingBars变量中保存所有已显示工具栏标题,各标题之间以vbCr分隔。(可以用其他字符分隔,但用vbCr有利于调试。)以后程序就可以利用ExistingBars来避免工具栏重复显示了。

  接下来执行的是下面这个Fox循环:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  For Each TBar In CommandBars
  If TBar.BuiltIn = True And _
  TBar.Type = msoBarTypeNormal And
  TBar.Enabled = True And _
  TBar.Visible = False And _
  InStr(ExistingBars, TBar.NameLocal & vbCr) = 0 Then
  With HiddenBarList.Controls.Add
  .Caption = Replace(TBar.NameLocal, ″&″, ″&&″)
  .Parameter = TBar.Name
  .OnAction = ″DisplayToolbar″
  End With
  End If
  Next
  ' 加入'自定义'命令
  With HiddenBarList.Controls.Add(ID:=797)
  .BeginGroup = True
  End With
  End Sub

  这个For循环的任务是:遍历整个CommandBars集合,对于每一个CommandBar:

  1. 检查BuiltIn属性是否为True,以排除所有自定义工具栏。

  2. 检查Type属性是否为msoBarTypeNormal(即0),以排除菜单条(Menu Bar)、弹出式菜单,确保只显示那些″真正的”工具栏。

  3. Enabled属性值也必须为True,以保证只显示那些可用的菜单。例如不在全屏显示方式下时,工具栏是不应该显示的。

  4. 一些工具栏,如,即使它是可见的,其名字也不会显示在菜单下,因此还必须检查Visible属性是否为False。

  5. 最后,程序检查工具栏标题是否出现在ExistingBars中,若出现的话,说明该工具栏标题已经显示在菜单下面了。

  如果所有上述检查通过,就可以在子菜单下新增一个工具栏标题。前面代码中的最后一个With用于在子菜单的底部加上命令。

  从子菜单选择一个工具栏名字时触发DisplayToolbar过程。DisplayToolbar的功能是检查Parameter值(ListHiddenToolbars将它设置为工具栏名字),显示对应的工具栏。

  Sub DisplayToolbar()
  On Error Resume Next
  With CommandBars.ActionControl
  CommandBars(.Parameter).Visible = True
  If Err Then
  MsgBox ″不能显示″ & .Parameter, _
  vbExclamation, ″隐藏工具栏″
  End If
  End With
  End Sub

  最后,对于Excel和PowerPoint,要在菜单下显示类似的菜单,只需将Word中的AutoExec和AutoExit分别用下面的Auto_Open和Auto_Close替换即可:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  Sub Auto_Open()
  AddHiddenToolBarsOption
  End Sub
  Sub Auto_Close()
  RemoveHiddenToolBarsOption
  End Sub(浙江 俞良松)

展开更多 50%)
分享

猜你喜欢

VC++实现拨号上网程序

编程语言 网络编程
VC++实现拨号上网程序

怎么拨号上网

电脑入门
怎么拨号上网

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何用 Linux 拨号上网

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
如何用 Linux 拨号上网

怎样用linux拨号上网

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
怎样用linux拨号上网

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

拨号上网必学的安全技巧

windows 操作系统
拨号上网必学的安全技巧

利用VC++编程实现程序自动启动

编程语言 网络编程
利用VC++编程实现程序自动启动

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VC下通过直方图变换对图像进行有效增强

VC下通过直方图变换对图像进行有效增强

失落会长大

失落会长大
下拉加载更多内容 ↓