移除报表预览窗口的Min/Max/Close按钮
来源:优易学  2011-12-9 17:30:11   【优易学:中国教育考试门户网】   资料下载   IT书店

  从报表的预览窗口上移除最小化、最大化以及复原按钮,创建一个自定义的工具条让用户来关闭报表以及使用某些API函数来移除预览窗口上的标题栏。使用这种方法,一旦最大化报表,预览窗口将占据整个access的屏幕窗口而不出现允许复原按钮恢复原来窗口的大小以及不出现其它按钮。

  正文:

  从报表的预览窗口上移除最小化、最大化以及复原按钮,创建一个自定义的工具条让用户来关闭报表以及使用某些API函数来移除预览窗口上的标题栏。使用这种方法,一旦最大化报表,预览窗口将占据整个access的屏幕窗口而不出现允许复原按钮恢复原来窗口的大小以及不出现其它按钮。

  涉及的使用步骤如下:

  1.在每个报表的Deactivate事件处理程序中写入:

  DoCmd.CloseacReport,Me.Name

  2.在一个总是打开的主菜单中放置一个唯一的退出数据库的按钮,并在引用报表的窗口(frmStart)中定义:

  DimCanCloseasInteger

  在窗体的Open事件处理程序中写入:

  CanClose=0

  在窗体的Unload事件处理程序中写入:

  IfNotCanCloseThen

  Cancel=True

  Forms!frmStart.Visible=True

  'formishiddenwhenreportispreviewed

  DoCmd.SelectObjectacForm,"frmStart"

  CloseForms

  CloseReports

  'CloseFormsandCloseReportscloseanyopenobjects

  'otherthanfrmStart

  EndIf

  3.使用每个窗体的Open事件处理程序写入DoCmd.Maximize。

  4.为打印建立一个定置的工具条,放置关闭以及其它的功能按钮。设置报表的菜单为"-1",在工具条上做两个限制用户使用的操作。

  5.使用下面的代码预览报表:

  DoCmd.OpenReport"TheReport",acViewPreview,...

  CallsRemoveCaption(Reports("TheReport")

  这样的话,用户就能:

  1.看到报表

  2.在工具条操作

  3.最小化access

  好了,如果用户想关闭access,可以主菜单来做到,但在报表预览窗口没有最小化、最大化以及关闭按钮。

  '*********************CodeStart************************

  'ThiscodewasoriginallywrittenbyTerryKreft&KeriHardwick.

  'Itisnottobealteredordistributed,

  'exceptaspartofanapplication.

  'Youarefreetouseitinanyapplication,

  'providedthecopyrightnoticeisleftunchanged.

  '

  'CodeCourtesyof

  'TerryKreft&KeriHardwick

  '

  PrivateTypeRECT'16Bytes

  leftAsLong

  topAsLong

  rightAsLong

  bottomAsLong

  EndType

  PrivateDeclareFunctionapiGetWindowLongLib"User32"_

  Alias"GetWindowLongA"_

  (ByValhwndAsLong,_

  ByValnIndexAsLong)_

  AsLong

  PrivateDeclareFunctionapiSetWindowLongLib"User32"_

  Alias"SetWindowLongA"_

  (ByValhwndAsLong,_

  ByValnIndexAsLong,_

  ByValdwNewLongAsLong)_

  AsLong

  PrivateDeclareFunctionapiGetWindowRectLib"User32"_

  Alias"GetWindowRect"_

  (ByValhwndAsLong,_

  lpRectAsRECT)_

  AsLong

  PrivateDeclareFunctionapiGetSystemMetricsLib"User32"_

  Alias"GetSystemMetrics"_

  (ByValnIndex&)_

  AsLong

  PrivateDeclareFunctionapiReleaseDCLib"User32"_

  Alias"ReleaseDC"_

  (ByValhwndAsLong,_

  ByValhDCAsLong)_

  AsLong

  PrivateDeclareFunctionapiGetDeviceCapsLib"Gdi32"_

  Alias"GetDeviceCaps"_

  (ByValhDCAsLong,_

  ByValnIndexAsLong)_

  AsLong

  PrivateDeclareFunctionapiGetDCLib"User32"_

  Alias"GetDC"_

  (ByValhwndAsLong)_

  AsLong

  PrivateDeclareFunctionIsZoomedLib"User32"_

  (ByValhwndAsLong)AsLong

  PrivateDeclareFunctionShowWindowLib"User32"_

  (ByValhwndAsLong,_

  ByValnCmdShowAsLong)AsLong

  PrivateDeclareFunctionMoveWindowLib"User32"_

  (ByValhwndAsLong,_

  ByValxAsLong,_

  ByValYAsLong,_

  ByValnWidthAsLong,_

  ByValnHeightAsLong,_

  ByValbRepaintAsLong)AsLong

  PrivateDeclareFunctionGetParentLib"User32"_

  (ByValhwndAsLong)AsLong

  'UsefollowinginsteadofGetWindowRect

  PrivateDeclareFunctionGetClientRectLib"User32"_

  (ByValhwndAsLong,_

  lpRectAsRECT)AsLong

  PublicConstSW_MAXIMIZE=3

  PublicConstSW_SHOWNORMAL=1

  PrivateConstGWL_EXSTYLE=-20

  PrivateConstGWL_HINSTANCE=-6

  PrivateConstGWL_HWNDPARENT=-8

  PrivateConstGWL_ID=-12

  PrivateConstGWL_STYLE=-16

  PrivateConstGWL_USERDATA=-21

  PrivateConstGWL_WNDPROC=-4

  PrivateConstWS_CAPTION=&HC00000

  PrivateConstWS_SYSMENU=&H80000

  PrivateConstSM_CYCAPTION=4'Heightofcaptionortitle

  PrivateConstTWIPSPERINCH=1440

  '**WindowStyleConstants

  PrivateConstWS_DLGFRAME&=&H400000

  PrivateConstWS_THICKFRAME&=&H40000

  SubaTest()

  DoCmd.OpenReport"Report1",acViewPreview

  CallsRemoveCaption(Reports!Report1)

  EndSub

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训