Ownsight

?找回密码
?立即注册
搜索
热搜: 活动 交友 discuz
查看: 700|回复: 0
打印 上一主题 下一主题

c# 增加控件 闪烁 解决方案 窗体的扩展样式

[复制链接]

803

主题

903

帖子

3201

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3201
跳转到指定楼层
楼主
发表于 2018-4-22 10:56:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
protected override CreateParams CreateParams
? ?? ???{
? ?? ?? ?? ?get
? ?? ?? ?? ?{
? ?? ?? ?? ?? ? CreateParams cp = base.CreateParams;
? ?? ?? ?? ?? ? cp.ExStyle |= 0x02000000;//用双缓冲从下到上绘制窗口
? ?? ?? ?? ?? ? return cp;
? ?? ?? ?? ?}
? ?? ???}


WS_EX_ACCEPTFILES = 0x00000010
指明了一个已创建视窗具有拖拽文件功能


WS_EX_APPWINDOW = 0x00040000
强制一个可见的顶级视窗到工具栏上


WS_EX_CLIENTEDGE = 0x00000200
使一个视窗具有凹陷边框


WS_EX_COMPOSITED = 0x02000000
Windows XP:将一个窗体的所有子窗口使用双缓冲按照从低到高方式绘制出来,参阅remark项.如果这个视窗已经使用经典样式中的下列值CS_OWNDC , CS_CLASSDC,WS_EX_CONTEXTHELP.此参数将不能使用.
这个样式的视窗在标题栏上有一个问号,当拥护点击着个问号,鼠标变成一个问号,如果用户然后点击一个子窗口,子窗就会收到一条WM_HELP消息.子窗口将把这个消息传递给他的父进程,这个父进程将用HELP_WM_HELP命令调用WinHelp函数.这个帮助程序常常弹出一个典型的包含其子窗口的帮助的窗口
本参数不能和WS_MAXIMIZEBOX ,WS_MINIMIZEBOX一起使用


WS_EX_CONTROLPARENT = 0x00010000
这个窗体本身包含了参与对话框导航的子窗口.如果使用了这个参数,对话框管理器?入这个窗体的子窗口,当执行导航操作时,比如按住TAB键,方向键.


WS_EX_DLGMODALFRAME = 0x00000001
创建一个具有双边框的窗口,这个窗口可以通过使用WS_CAPTION样式被创建成具有一个标题栏的窗口.


WS_EX_LAYERED = 0x00080000
Windows 2000/XP:创建一个分层的窗口.注意,这不能用在子窗口上.同样,如果窗口具有CS_OWNDC ,CS_CLASSDC样式,这也不用使用.


WS_EX_LAYOUTRTL = 0x00400000
阿拉伯以及西伯来版本的98/ME,2000/XP创建一个水平起点在右边的窗口.越往左边水平坐标值变大.


WS_EX_LEFT = 0x00000000
创建一个窗口具有一般的左对齐属性.此为默认


WS_EX_LEFTSCROLLBAR = 0x00004000
如果外壳语言是西伯来,阿拉伯,或者其他阅读顺序的语言,竖滚动条将会在客户区的左边.对其他语言,此参数忽略.


WS_EX_LTRREADING = 0x00000000
窗体的文字按照从左到右排列.此为默认.


WS_EX_MDICHILD = 0x00000040
创建一个多文档界面的子窗口.


WS_EX_NOACTIVATE = 0x08000000
Windows 2000/XP:一个使用此参数创建的顶级窗口不会变成前台窗口,当用户点击他时.系统不会将此窗口放到前台,当用户最小化或者关闭这个前台窗口.
要激活这样的窗口,使用SetActiveWindow或者SetForegroundWindow函数
此类型的窗口默认不会显示在任务栏上.要强行将这样的窗口显示到任务栏上,使用WS_EX_APPWINDOW参数.


WS_EX_NOINHERITLAYOUT = 0x00100000
Windows 2000/XP:用此参数创建的窗体不会传递他的窗口布局给他的子窗口


WS_EX_NOPARENTNOTIFY = 0x00000004
指明一个使用此参数创建的窗口不发送WM_PARENTNOTIFY消息给他的父窗口当这个窗口被创建或者销毁的时候.


WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
联合了WS_EX_CLIENTEDGE and WS_EX_WINDOWEDGE styles


WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
联合了WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW, and WS_EX_TOPMOST styles.


WS_EX_RIGHT = 0x00001000
窗口具有一般的右对齐属性.这要依靠这个窗口的类.这个样式只有外壳语言是西伯来语,阿拉伯语等其他阅读顺序的语言才有影响,否则此样式别忽略
对文字标签或者编辑框使用WS_EX_RIGHT样式跟使用SS_RIGHT 或者 ES_RIGHT影响是一样的.对按钮使用这个样式跟使用BS_RIGHT 和BS_RIGHTBUTTON的影响是一样的


WS_EX_RIGHTSCROLLBAR = 0x00000000
竖直滚动条显示在客户区的右边.默认.


WS_EX_RTLREADING = 0x00002000
如果外壳语言是西伯来语,阿拉伯语等支持排列方式阅读的语言,窗体文字将按照从右到左的阅读顺序.对其他语言,此样式忽略.


WS_EX_STATICEDGE = 0x00020000
创建一个窗口具有三维边框用来表示一个项目不接受用户输入.


WS_EX_TOOLWINDOW = 0x00000080
创建一个工具窗口:也就是说,这个窗口被用来做浮动工具条.一个工具窗口具有一个比一般的标题栏短的标题栏,并且系统在标题栏使用小字体.作为工具窗口,它不显示在工具栏上.当用户用ALT+TAB切换时也不出现在对话框中.如果一个工具窗有系统菜单,那么他的图标不会被显示在标题栏上.但是,你可以通过键入ALT+TAB或者右键点击标题栏来显示系统菜单.


WS_EX_TOPMOST = 0x00000008
指明用此参数创建的窗口将会放在所有顶级视窗上并且停在最上面.即使这个窗口不是活动的.要添加或者移除他,使用SetWindowPos函数.


WS_EX_TRANSPARENT = 0x00000020
用此参数创建的的窗口在他同一线程的窗口被绘制前将不会被绘制.这个窗口透明的显示,因为同一线程的窗口已经绘制出来
要脱离这个限制激活透明,使用SetWindowRgn函数.


WS_EX_WINDOWEDGE = 0x00000100
使一个窗口具有凸起的边框.

===============================================
[参考]
在winuser.h中定义:

/*
* Window Styles
*/
#define WS_OVERLAPPED? ?? ? 0x00000000L
#define WS_POPUP? ?? ?? ?? ?0x80000000L
#define WS_CHILD? ?? ?? ?? ?0x40000000L
#define WS_MINIMIZE? ?? ?? ?0x20000000L
#define WS_VISIBLE? ?? ?? ? 0x10000000L
#define WS_DISABLED? ?? ?? ?0x08000000L
#define WS_CLIPSIBLINGS? ???0x04000000L
#define WS_CLIPCHILDREN? ???0x02000000L
#define WS_MAXIMIZE? ?? ?? ?0x01000000L
#define WS_CAPTION? ?? ?? ? 0x00C00000L? ???/* WS_BORDER | WS_DLGFRAME??*/
#define WS_BORDER? ?? ?? ???0x00800000L
#define WS_DLGFRAME? ?? ?? ?0x00400000L
#define WS_VSCROLL? ?? ?? ? 0x00200000L
#define WS_HSCROLL? ?? ?? ? 0x00100000L
#define WS_SYSMENU? ?? ?? ? 0x00080000L
#define WS_THICKFRAME? ?? ? 0x00040000L
#define WS_GROUP? ?? ?? ?? ?0x00020000L
#define WS_TABSTOP? ?? ?? ? 0x00010000L

#define WS_MINIMIZEBOX? ?? ?0x00020000L
#define WS_MAXIMIZEBOX? ?? ?0x00010000L


#define WS_TILED? ?? ?? ?? ?WS_OVERLAPPED
#define WS_ICONIC? ?? ?? ???WS_MINIMIZE
#define WS_SIZEBOX? ?? ?? ? WS_THICKFRAME
#define WS_TILEDWINDOW? ?? ?WS_OVERLAPPEDWINDOW

/*
* Common Window Styles
*/
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED? ???| \
? ?? ?? ?? ?? ?? ?? ?? ?? ???WS_CAPTION? ?? ???| \
? ?? ?? ?? ?? ?? ?? ?? ?? ???WS_SYSMENU? ?? ???| \
? ?? ?? ?? ?? ?? ?? ?? ?? ???WS_THICKFRAME? ???| \
? ?? ?? ?? ?? ?? ?? ?? ?? ???WS_MINIMIZEBOX? ? | \
? ?? ?? ?? ?? ?? ?? ?? ?? ???WS_MAXIMIZEBOX)

#define WS_POPUPWINDOW? ?? ?(WS_POPUP? ?? ?? ? | \
? ?? ?? ?? ?? ?? ?? ?? ?? ???WS_BORDER? ?? ?? ?| \
? ?? ?? ?? ?? ?? ?? ?? ?? ???WS_SYSMENU)

#define WS_CHILDWINDOW? ?? ?(WS_CHILD)

/*
* Extended Window Styles
*/
#define WS_EX_DLGMODALFRAME? ???0x00000001L
#define WS_EX_NOPARENTNOTIFY? ? 0x00000004L
#define WS_EX_TOPMOST? ?? ?? ???0x00000008L
#define WS_EX_ACCEPTFILES? ?? ? 0x00000010L
#define WS_EX_TRANSPARENT? ?? ? 0x00000020L
#if(WINVER >= 0x0400)
#define WS_EX_MDICHILD? ?? ?? ? 0x00000040L
#define WS_EX_TOOLWINDOW? ?? ???0x00000080L
#define WS_EX_WINDOWEDGE? ?? ???0x00000100L
#define WS_EX_CLIENTEDGE? ?? ???0x00000200L
#define WS_EX_CONTEXTHELP? ?? ? 0x00000400L

#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400)

#define WS_EX_RIGHT? ?? ?? ?? ? 0x00001000L
#define WS_EX_LEFT? ?? ?? ?? ???0x00000000L
#define WS_EX_RTLREADING? ?? ???0x00002000L
#define WS_EX_LTRREADING? ?? ???0x00000000L
#define WS_EX_LEFTSCROLLBAR? ???0x00004000L
#define WS_EX_RIGHTSCROLLBAR? ? 0x00000000L

#define WS_EX_CONTROLPARENT? ???0x00010000L
#define WS_EX_STATICEDGE? ?? ???0x00020000L
#define WS_EX_APPWINDOW? ?? ?? ?0x00040000L

#define WS_EX_OVERLAPPEDWINDOW??(WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
#define WS_EX_PALETTEWINDOW? ???(WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)

#endif /* WINVER >= 0x0400 */

#if(_WIN32_WINNT >= 0x0500)
#define WS_EX_LAYERED? ?? ?? ???0x00080000

#endif /* _WIN32_WINNT >= 0x0500 */


#if(WINVER >= 0x0500)
#define WS_EX_NOINHERITLAYOUT? ?0x00100000L // Disable inheritence of mirroring by children
#define WS_EX_LAYOUTRTL? ?? ?? ?0x00400000L // Right to left mirroring
#endif /* WINVER >= 0x0500 */

#if(_WIN32_WINNT >= 0x0500)
#define WS_EX_COMPOSITED? ?? ???0x02000000L
#define WS_EX_NOACTIVATE? ?? ???0x08000000L
#endif /* _WIN32_WINNT >= 0x0500 */

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表