| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1066 人关注过本帖
标题:表单BorderStyle=1与2有何区别?
只看楼主 加入收藏
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
结帖率:96.77%
收藏
已结贴  问题点数:20 回复次数:3 
表单BorderStyle=1与2有何区别?
用了多年的VFP,但一直未搞明白 Form.BorderStyle=1(单线边框)与2(固定对话框边框)有何实质区别。两者都不能通过拖拽边框来更改窗口大小,外观上也都不出明显区别。请问各位版主怎么看?
搜索更多相关主题的帖子: 区别 边框 大小 表单 外观 
2020-11-24 09:06
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:10 
在XP上有明显的视觉差异,在WIN7上视觉差异不明显。

只求每天有一丁点儿的进步就可以了
2020-11-24 10:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏(1)
得分:10 
程序代码:
从窗口样式看看:
*  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编辑过]

2020-11-24 11:16
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
以下是引用吹水佬在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 属性。使用这个属性创建的窗口,不能够通过键盘和鼠标改变
    窗口的大小。

2020-11-24 21:40
快速回复:表单BorderStyle=1与2有何区别?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015668 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved