📄 在vfp中制做异型窗口.txt
字号:
在VFP中制做异型窗口
(作者:周鸣扬 2000年09月04日 11:50)
制做异型窗口听起来好象只是在VB、VC程序设计中才能够做到的。但是,在VFP中,只要你灵活运用API函数,这并不是一件很难实现的事情。通过本文的介绍,你一定能够发现VFP程序的强项不仅仅是数据处理,在程序界面设计方面也可以和其他的编程语言相媲美。
一、实现原理
在VB、VC程序的设计中,如果想要改变窗口的形状,通常会通过对SetWindowRgn的调用来达到目的。SetWindowRgn函数能够将窗口设定成任意形状。该函数的调用格式如下:
int SetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw )
其中各参数的含意为:
hWnd:欲改变窗口的句柄
hRgn:窗口的显示区域
bRedraw:指明窗口在被改变显示区域之后是否需要重绘,通常情况下该值为真。
通过上面对SetWindowRgn函数的介绍,我们可以看出,在VFP中要想改变窗口的形状,需要知道VFP窗口的句柄。在VFP中要想直接得到有关窗口的情况是很困难的,因此必须利用API例程库。VFP自带的API例程库“Foxtools.fll"提供了对窗口操作的相关函数。本文中能够用到的例程有_WOnTop()和_WhToHwnd()两种,其中_WOnTop()是用来获得顶层窗口的句柄,_WhToHwnd()返回指定窗口的句柄。这两个API例程的调用格式很简单,这里就不再详细介绍了。
二、实现过程
有了上面的认识之后,我们便可以试着去设计异型窗口的程序了。设计步骤如下:
1.新建一表单Mult_shape,按表1设置表单的属性。
表1 属性名
设置值
备 注
AutoCenter
.T.
自动居中
BackColor
0,0,160
蓝色背景
BorderStyle
No Border
窗口无边框
ControlBox
.F.
去掉表单的最大化、最小化、恢复按钮
Caption
圆形窗口
FillColor
128,255,0
ShowWindow
2-as Top
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -