rce=MyView 现在,我根据用户的选择/输入生成新的视图: Create
sql View MyView as (select * from 数 据 库 名 ! 表 名 = ?thisform.qryValue) thisform.grid1.recordsource=MyView &;&;注意,这是重点 =Requery() thisform.refresh() 这样就可以解决问题了。 where 表 名 . 字 段 二
如何创建一个根据屏幕分辩率自动调整的表单 概述 在一种分辩率下开发的屏幕在另一种分辩率下运行时, 可能与你期望的不同. 一种
方案是开发不同分 辩率下的多个不同的屏幕, 并在某一分辩率下运行相应的屏幕. 但是在 Visual FoxPro 中, 可以根据当前分辩率动态调整屏幕大小并重新安排对象. 本文用例子演 示了如何这样做. 更多信息 逐步示例 在 640x480 分辩率下创建一个新表单. 添加一些文本框, 命令按钮和标签这样的控件到表单. 将以下代码放入表单的 Init 事件中和表单中的任何窗口任何容器对象(如页框中的页)的 Init 事件 中: ** 假定屏幕是在 640x480 下创建的 LOCAL lnHeight, lnWidth, lnHeightdiff, lnWidthdiff lnHeight = 480 &;&; 原分辩率下的控件高度 lnWidth = 640 &;&; 原分辩率下的控件宽度 lnHeightdiff = 0 &;&; 保存不同高度的变量 lnWidthdiff = 0 &;&; 保存不同宽度的变量 IF SYSMETRIC(2) <> lnHeight &;&; 如果目前不是运行于 640x480 分辩率下 lnHeightDiff = SYSMETRIC(2) / lnHeight lnWidthDiff = SYSMETRIC(1) / lnWidth ** 如果是在容器对象(如页框中的页等非表单且具有 ControlsCount 属性的容器)的 Init 事件 中, 你需要注 ** 释掉以下代码直到 ENDIF 代码行.
This.Height = This.Height * lnHeightDiff This.Width = This.Width * lnWidthDiff This.Top = This.Top * lnHeightDiff This.Left = This.Left * lnHeightDiff ** 遍历各对象, 重新调整和安排它们.
FOR I = 1 TO This.ControlCount WITH This.Controls(i) .Height = .Height * lnHeightdiff .Width = .Width * lnWidthdiff
.Top =
.Top * lnHeightdiff .Left = .Left * lnWidthdiff ** 你也可以在这里修改 FontSize 属性来重调字体 ** IF TYPE(".FontSize") # "U" ** &;&; IF 用于确保控件具有 FontSize 属性 ** .FontSize = .FontSize * ((.5 * lnWidthdiff) + (.5 * lnHeightdiff)) ** ENDIF ** 但是, 一些较高的屏幕分辩率会适当地修改字体外观, 因此在试以上代码前应进行测试.
ENDWITH ENDFOR ENDIF ThisForm.Refresh() 在表同分辩率下运行表单. 可以观察到它们的自动适应
vfp 中将表单的内容直接打印 ******************************************* *-- 程序名称:将表单的内容直接打印 --* *-- 将窗口中的内容以一个位图的形式打印 --* *--
程序作者:未知,来源论坛转帖 --* *-- 使用方法:在表单中执行该程序既可 --* * 例:在某表单的一个 command --* * 按纽中执行 do printform.prg --* ******************************************* *-- 定义常量 #define logpixelsx 88 #define logpixelsy 90 #define physicaloffsetx 112 #define physicaloffsety 113 #define srccopy 13369376 #define dib_rgb_colors 0 *-- 调用本程序段中的子过程 do decl *-- 定义变量 private pnwidth, pnheight, lnbitsperpixel, lnbytesperscan store 0 to pnwidth, pnheight, lnbitsperpixel, lnbytesperscan local hwnd, hformdc, hprndc, hmemdc, hmembmp, hsavedbitmap,; xoffsprn, yoffsprn, xscale, yscale, lcdocinfo, lcbinfo, lpbitsarray
*-- 得到打印机设备的坐标偏移量 hprndc = getdefaultprndc() &;&; 没有进行错误检查 xoffsprn = getdevicecaps(hprndc, physicaloffsetx) yoffsprn = getdevicecaps(hprndc, physicaloffsety) *-- 得到屏幕的窗口句柄,及她们的宽度、高度等。 hwnd = getfocus() &;&; a window with keyboard focus hformdc = getwindowdc(hwnd) = getwinrect (hwnd, @