表单BorderStyle=1与2有何区别?
用了多年的VFP,但一直未搞明白 Form.BorderStyle=1(单线边框)与2(固定对话框边框)有何实质区别。两者都不能通过拖拽边框来更改窗口大小,外观上也都不出明显区别。请问各位版主怎么看?
从窗口样式看看: * 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编辑过]