**怎样定制打印预览窗口?
**在打印预览表单中定制标题栏的一个途径
怎样定制打印预览窗口?
问:
有什么办法可以定制打印预览窗口的标题和工具栏?
我想要移去在右上角的那些按钮,这样在工具栏上的退出按钮就可以保证是退出的唯一选择。
回答:
VFP不允许对打印预览窗口的更多控制。所以你可能想要使用其他的报表编辑器——无论如何,对你提到的那些问题我们还是可以做一些事情的。Report 有一个 WindowName 选项。还有,如果你使用 REPORT NOWAIT 命令,那么你可以使用 ACTIVATE WINDOW 在任何窗口(包括顶层表单)中预览。
至于工具栏,你对它的修改被保存在 foxuser.dbf 中。你可以新建一个,定制工具栏,然后用另一个文件名保存 foxuser.dbf。在你打印预览前,用 SET RESOURCE to 把 foxuser.dbf 指定为你的自定义 foxuser.dbf。
在打印预览表单中定制标题栏的一个途径
在打印预览表单中定制标题栏并不是一件困难的事情,秘诀在于:
1、定义一个用于打印预览的窗口:(DefinirForma)
2、运行报表:(DO DOVistaPrevia)
**定义打印预览窗口的代码
PUBLIC oForm
IF !UPPER("FOXTOOLS") $ SET("LIBRARY")
SET LIBRARY TO HOME() + "Foxtools.Fll"
ENDIF
DO DefinirForma
DO DOVistaPrevia
RETURN
**表单定义
PROCEDURE DefinirForma
oForm = NEWOBJECT("Form002", "", "", "一个自定义打印预览窗口的例子")
oForm.Show
DEFINE CLASS Form002 AS Form
AutoCenter = .T.
BorderStyle = 3
Caption = "APLIC_NAME" && 这个标题是可以改变的
Desktop = .T.
DoCreate = .T.
FontBold = .T.
FontName = "MS Sans Serif"
FontSize = 8
Height = 350
Name = "Form002"
ShowWindow = 2
SizeBox = .T.
TabStop = .F.
Tag = "501"
TitleBar = 0 && **** 重要!不要改动 ****
Width = 474
PROCEDURE Init
LPARAMETERS lcCaption
LOCAL lnWHandle
THIS.Caption = lcCaption
*-- 这里设置的标题将不会显示
_WSetTitle(_WFindTitl(THIS.Caption), THIS.Caption)
ENDPROC
ENDDEFINE
ENDPROC
*-- Procedure DoVistaPrevia
PROCEDURE DoVistaPrevia
LOCAL lcAlias
lcAlias = ALIAS()
CREATE CURSOR TempDbf (TempMemo m)
SELECT TempDbf
APPEND BLANK
REPLACE TempDbf.TempMemo WITH "这是一个自定义打印预览窗口的例子" + CHR(13) + "不是一个完美的方法"
REPORT FORM UserRpt NOCONSOLE PREVIEW IN WINDOW Form002
SELECT TempDbf
USE
IF !EMPTY(lcAlias) AND USED(lcAlias)
SELECT (lcAlias)
ENDIF
RELEASE WINDOWS Form002
ENDPROC
这就是全部内容。秘诀在下面这些地方:
1、在表单定义中:
TitleBar = 0 && **** 重要!不要改动 ****
2、在用于打印预览的表单的INIT方法中:
_WSetTitle(_WFindTitl(THIS.Caption), THIS.Caption)
3、在菜单代码中:
REPORT FORM UserRpt NOCONSOLE PREVIEW IN WINDOW Form002
文章出处:飞诺网(www.):http://www.