visual foxpro hwnd 控件

请参阅

Visual FoxPro 包含 HWND ActiveX 控件 (Foxhwnd.ocx),可以将该控件添加到应用程序中并与之一起发布。需要利用 Visual FoxPro 的 OLE 容器控件来将ActiveX 控件添加到应用程序的表单中。

HWND ActiveX 控件提供了一个窗口,其他的 ActiveX 控件(例如 Microsoft Multimedia ActiveX 控件)可在其中显示图象。与 Visual FoxPro 的 Image 控件不同,HWND ActiveX 控件可以用来显示图标和 Windows 元文件。

下表列出了在 HWND ActiveX 控件中可用的属性、事件和方法程序。

属性、事件或方法程序 说明
Appearance 属性 指定 HWND 控件的显示方式。在设计和运行时刻均可用。

Appearance 属性可以有以下取值:

0 - 平面(默认值)。

1 - 三维。

BackColor 属性 指定 HWND 控件的背景色。在设计和运行时刻均可用。

BackColor 属性的值是一个代表颜色的数字。有关 BackColor 属性可取颜色数值的详细内容,请参阅 Visual FoxPro 帮助的“BackColor 和 ForeColor 属性”主题。

BorderStyle 属性 指定 HWND 控件的边框样式。在设计和运行时刻均可用。

BorderStyle 属性可以有如下取值:

0 - 无边框(默认值)。

1 – 单线边框。

Picture 属性 指定 HWND 控件中所显示图象的图片对象引用。在设计和运行时刻均可用。

使用LOADPICTURE( ) 函数生成一个位图、图标或 Windows 元文件对象。

HWnd 属性 包含 HWND 控件窗口的句柄。在运行时刻只读。
Click 事件 当鼠标指针位于 HWND 控件上时,如果用户按下再释放鼠标左键,则本事件发生。
DblClick 事件 当鼠标指针位于 HWND 控件上时,如果用户快速地连续两次按下再释放鼠标左键,则本事件发生。
KeyDown 事件 当焦点位于 HWND 控件时,如果用户按下一个键,则本事件发生。传递给KeyDown 事件的参数是 Keycodeshift

Keycode 包含用于识别所按下键的数值。有关特殊键和组合键代码的列表,请参阅 INKEY( ) 函数

如果 Shift 键、Ctrl 键或 Alt 键被按下,则参数 Shift 中相应的位被置位。该参数的值是各位值之和:位 0 对应 Shift 键,位 1 对应 Ctrl 键,位 2 对应 Alt 键。这些位分别相当于值 1、2 和 4。该参数指出了这三个键的状态。对该参数中三个位的部分置位、全部置位或不置位,分别表示部分、全部或没有按下这些键。例如,如果 CTRL 和 ALT 键都被按下,则 shift 的值为 6。

KeyPress 事件 当焦点位于 HWND 控件时,如果用户按下再释放一个键,则本事件发生。传递给 KeyPress 事件的参数是 keyascii

Keyascii 包含的数值指出哪个键被按下再释放。要获得特殊键和组合键代码的列表,请参阅 INKEY( ) 函数。

KeyUp 事件 当焦点位于 HWND 控件时,如果用户释放一个键,则本事件发生。

传递给 KeyUp 事件的参数是 keycodeshift

Keycode 包含的数值指出了哪个键被释放。有关特殊键和组合键代码的列表,请参阅 INKEY( ) 函数。

如果 Shift 键、Ctrl 键或 Alt 键被按下,则参数 Shift 中相应的位被置位。该参数的值是各位值之和:位 0 对应 Shift 键,位 1 对应 Ctrl 键,位 2 对应 Alt 键。这些位分别相当于值 1、2 和 4。该参数指出了这三个键的状态。对该参数中三个位的部分置位、全部置位或不置位,分别表示部分、全部或没有按下这些键。例如,如果 CTRL 和 ALT 键都被按下,则 shift 的值为 6。

MouseDown 事件 当鼠标指针位于 HWND 控件上时,如果用户按下鼠标的一个键,则本事件发生。

传递给 MouseDown 事件的四个参数是 button,shift,x 和 y

Button 包含的数值指出触发本事件时按下的是哪个鼠标键:1(左键),2(右键)或 4(中键)。

Shift 包含的数值指示了当由 Button 参数指出的鼠标键被按下时,Ctrl 键、Alt 键 和 Shift 键的状态。

如果 Shift 键、Ctrl 键或 Alt 键被按下,则参数 Shift 中相应的位被置位。该参数的值是各位值之和:位 0 对应 Shift 键,位 1 对应 Ctrl 键,位 2 对应 Alt 键。这些位分别相当于值 1、2和 4。该参数指出了这三个键的状态。对该参数中三个位的部分置位、全部置位或不置位,分别表示部分、全部或没有按下这些键。例如,如果 CTRL 和 ALT 键都被按下,则 shift 的值为 6。

xy 包含了鼠标指针当前在表单中的水平位置 (x) 和垂直位置 (y)。这两个坐标总是根据表单的指定坐标系,以及由 ScaleMode 属性设置所指定的度量单位来表示。

MouseMove 事件 当鼠标指针位于 HWND 控件上时,如果用户移动了鼠标,则本事件发生。当鼠标指针在 HWND 控件上移动时,将不断触发 MouseMove 事件。

传递给 MouseMove 事件的四个参数是 buttonshiftxy

Button 包含的数值以和的方式指出了鼠标各个键的状态:1(左键)、2(右键)或 4(中键)。

如果 Shift 键、Ctrl 键或 Alt 键被按下,则参数 Shift 中相应的位被置位。该参数的值是各位值之和:位 0 对应 Shift 键,位 1 对应 Ctrl 键,位 2 对应 Alt 键。这些位分别相当于值 1、2 和 4。该参数指出了这三个键的状态。对该参数中三个位的部分置位、全部置位或不置位,分别表示部分、全部或没有按下这些键。例如,如果 CTRL 和 ALT 键都被按下,则 shift 的值为 6。

xy 包含了鼠标指针当前在表单中的水平位置 (x) 和垂直位置 (y)。这两个坐标总是根据表单的指定坐标系,以及由 ScaleMode 属性设置所指定的度量单位来表示。

MouseUp 事件 当鼠标指针位于 HWND 控件上时,如果用户释放鼠标的键,则本事件发生。

传递给 MouseMove 事件的四个参数是 buttonshiftxy

Button 包含的数值以和的方式指出了鼠标各个键的状态:1(左键)、2(右键)或 4(中键)。

Shift 包含的数值指出当由 Button 声明的鼠标键被释放时 CTRL、ALT 和 SHIFT 三键的状态。

如果 Shift 键、Ctrl 键或 Alt 键被按下,则参数 Shift 中相应的位被置位。该参数的值是各位值之和:位 0 对应 Shift 键,位 1 对应 Ctrl 键,位 2 对应 Alt 键。这些位分别相当于值 1、2和 4。该参数指出了这三个键的状态。对该参数中三个位的部分置位、全部置位或不置位,分别表示部分、全部或没有按下这些键。例如,如果 CTRL 和 ALT 键都被按下,则 shift 的值为 6。

xy 包含了鼠标指针当前在表单中的水平位置 (x) 和垂直位置 (y)。这两个坐标总是根据表单的指定坐标系,以及由 ScaleMode 属性设置所指定的度量单位来表示。

Paint 事件 当需要重绘 HWND 控件时,本事件发生。通常在 Paint 事件的代码中执行的是RestoreDisplay 方法程序。
RestoreDisplay 方法程序 还原由 SaveDisplay 方法程序保存到内存中的图象。
SaveDisplay 方法程序 将当前显示的图象保存到内存中。

请注意,在执行 SaveDisplay 方法程序时如果一个 AlwaysOnTop 属性设置为真(.T.)的工具条或表单覆盖在 HWND 控件上时,则该工具条或表单的图象将与 HWND 控件的图象一同被保存。


有关在应用程序中添加 ActiveX 控件的详细内容,请参阅《程序员指南》的第十六章“添加 OLE”。