怎样用代码隐藏、最大化、最小化ACCESS的主窗口


 (问) 怎样用代码隐藏、最大化、最小化ACCESS的主窗口? 

  (答) 通过一函数已定义的常量fSetAccessWindow实现。

  该函数能用来完全隐藏Access窗口并将你自己的窗体显示在桌面上。在弹出式窗体的Open事件中使用SW_HIDE参数调用fSetAccessWindow函数实现。

  注意:如果你隐藏了Access主窗口,要确定你有良好的出错处理。因为主窗口隐藏后,一旦引发错误,并出错提示窗口上点击了“结束”按钮,这样不会使Access主窗口可见,并退出你自己的窗体。推荐你在你的错误处理程序中使用SW_SHOWNORMAL参数调用fSetAccessWindow函数来显示Access主窗口。

  如果由于别的原因,Access主窗口不能显示,那么你将只能从任务栏中关闭你的mdb,在Win9x中使用Control-Alt-Delete来结束任务,在WinNT、2000或XP中,可以右键单击任务栏选择任务管理器来选择该mdb结束任务。

'************代码开始**********
GlobalConstSW_HIDE=0
GlobalConstSW_SHOWNORMAL=1
GlobalConstSW_SHOWMINIMIZED=2
GlobalConstSW_SHOWMAXIMIZED=3 PrivateDeclareFunctionapiShowWindowLib"user32"_
  Alias"ShowWindow"(ByValhwndAsLong,_
     ByValnCmdShowAsLong)AsLong
  FunctionfSetAccessWindow(nCmdShowAsLong)
'使用举例
'最大化Access窗口
'   ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'最小化Access窗口
'   ?fSetAccessWindow(SW_SHOWMINIMIZED)
'隐藏Access窗口
'   ?fSetAccessWindow(SW_HIDE)
'正常显示Access窗口
'   ?fSetAccessWindow(SW_SHOWNORMAL)
'
DimloX AsLong
DimloFORMAsFORM
  OnErrorResumeNext
  SetloFORM=Screen.ActiveFORM
  IfErr<>0Then'没有活动窗体noActiveFORM
   IfnCmdShow=SW_HIDEThen
    MsgBox"除非屏幕上有一个窗口,否则不能隐藏Access主窗口!"_
          &vbcr&vbcr _
          &"CannothideAccessunless"_
          &"aFORMisonscreen"
   Else
    loX=apiShowWindow(hWndAccessApp,nCmdShow)
    Err.Clear
   EndIf
  Else
    IfnCmdShow=SW_SHOWMINIMIZEDAndloFORM.Modal=TrueThen
      MsgBox"不能由屏幕上的"&(loFORM.Caption+"") &"窗体最小化Access主窗口!"_
          &vbcr&vbcr _
          &"CannotminimizeAccesswith"_
          &(loFORM.Caption+"")_
          &"FORMonscreen"
    ElseIfnCmdShow=SW_HIDEAndloFORM.PopUp<>TrueThen
      MsgBox"不能由屏幕上的"&(loFORM.Caption+"") &"窗体隐藏Access主窗口!"_
          &vbcr&vbcr _
          &"CannothideAccesswith"_
          &(loFORM.Caption+"")_
          &"FORMonscreen"
    Else
      loX=apiShowWindow(hWndAccessApp,nCmdShow)
    EndIf
  EndIf
  fSetAccessWindow=(loX<>0)
EndFunction
  '************代码结束**********


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3