编程论坛
注册
登录
编程论坛
→
VFP论坛
表单BorderStyle=1与2有何区别?
liuxingang28
发布于 2020-11-24 09:06, 1383 次点击
用了多年的VFP,但一直未搞明白 Form.BorderStyle=1(单线边框)与2(固定对话框边框)有何实质区别。两者都不能通过拖拽边框来更改窗口大小,外观上也都不出明显区别。请问各位版主怎么看?
3 回复
#2
wengjl
2020-11-24 10:17
在XP上有明显的视觉差异,在WIN7上视觉差异不明显。
#3
吹水佬
2020-11-24 11:16
程序代码:
从窗口样式看看:
* test.prg
DECLARE
LONG
GetWindowLong
IN
user32
LONG
,
LONG
of
=
CREATEOBJECT("form1")
of
.show(
1
)
RETURN
DEFINE CLASS form1
as
Form
BorderStyle
=
2
&&
或
=
1
PROCEDURE
Activate
*
GWL_STYLE
-
16
获得窗口样式
*
GWL_EXSTYLE
-
20
获取扩展窗口样式
_CLIPTEXT
=
TRANSFORM(GetWindowLong(thisform.hWnd,
-
20
),"
@0
")
? _CLIPTEXT
ENDPROC
ENDDEFINE
BorderStyle属性 窗口样式 扩展窗口样式
--
------------- ---------- ------------
BorderStyle
=
1
0x56CB0000
0x00000104
BorderStyle
=
2
0x56CB0000
0x00000105
从这方面看,扩展窗口样式有差别,扩展窗口样式参数:
WS_EX_DLGMODALFRAME
0x01
对话框的边框
WS_EX_NOPARENTNOTIFY
0x04
创建
/
销毁时不通知父窗口
WS_EX_WINDOWEDGE
0x100
带凸起边缘的边框
差别在 WS_EX_DLGMODALFRAME 样式:
WS_EX_DLGMODALFRAME
当窗口设置了这个属性的时候,窗口具有对话框的边框,这个属性通常用在对话框窗口,
不过任何窗口都可以使用这个属性来获得对话框的边框。
与 WS_EX_DLGMODALFRAME 相关的样式:
1
、WS_CAPTION
窗口具有标题栏,通常具有标题栏的窗口是不能具有对话框的边界属性的,除非为窗口
设置WS_EX_DLGMODALFRAME 属性。
2
、WS_DLGFRAME
窗口具有对话框的边框,这个属性通常是用在对话框窗口的,只能够用在窗口没有
标题栏的情况下,如果一个不是对话框的窗口使用了这个窗口,那么窗口必须被指定
WS_EX_DLGMODALFRAME 属性。使用这个属性创建的窗口,不能够通过键盘和鼠标改变
窗口的大小。
[此贴子已经被作者于2020-11-24 11:17编辑过]
#4
radiofan
2020-11-24 21:40
以下是引用
吹水佬
在2020-11-24 11:16:26的发言:
从窗口样式看看:
* test.prg
DECLARE LONG GetWindowLong IN user32 LONG, LONG
of = CREATEOBJECT("form1")
of.show(1)
RETURN
DEFINE CLASS form1 as Form
BorderStyle=2 && 或 =1
PROCEDURE Activate
* GWL_STYLE -16 获得窗口样式
* GWL_EXSTYLE -20 获取扩展窗口样式
_CLIPTEXT = TRANSFORM(GetWindowLong(thisform.hWnd, -20),"@0")
? _CLIPTEXT
ENDPROC
ENDDEFINE
BorderStyle属性 窗口样式 扩展窗口样式
--------------- ---------- ------------
BorderStyle=1 0x56CB0000 0x00000104
BorderStyle=2 0x56CB0000 0x00000105
从这方面看,扩展窗口样式有差别,扩展窗口样式参数:
WS_EX_DLGMODALFRAME 0x01 对话框的边框
WS_EX_NOPARENTNOTIFY 0x04 创建/销毁时不通知父窗口
WS_EX_WINDOWEDGE 0x100 带凸起边缘的边框
差别在 WS_EX_DLGMODALFRAME 样式:
WS_EX_DLGMODALFRAME
当窗口设置了这个属性的时候,窗口具有对话框的边框,这个属性通常用在对话框窗口,
不过任何窗口都可以使用这个属性来获得对话框的边框。
与 WS_EX_DLGMODALFRAME 相关的样式:
1、WS_CAPTION
窗口具有标题栏,通常具有标题栏的窗口是不能具有对话框的边界属性的,除非为窗口
设置WS_EX_DLGMODALFRAME 属性。
2、WS_DLGFRAME
窗口具有对话框的边框,这个属性通常是用在对话框窗口的,只能够用在窗口没有
标题栏的情况下,如果一个不是对话框的窗口使用了这个窗口,那么窗口必须被指定
WS_EX_DLGMODALFRAME 属性。使用这个属性创建的窗口,不能够通过键盘和鼠标改变
窗口的大小。
1