diff --git a/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project.exe b/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project.exe
index 7d66f5b..87c4bed 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project.exe and b/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project.exe differ
diff --git a/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project2.exe b/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project2.exe
index e08bcb6..2d0fe54 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project2.exe and b/Bin/Debug/CommonControls/.NET4 示例/Itrycn_Project2.exe differ
diff --git a/Bin/Debug/CommonControls/.NET4 示例/MyDb.dll b/Bin/Debug/CommonControls/.NET4 示例/MyDb.dll
index b59bdf0..20affa9 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/MyDb.dll and b/Bin/Debug/CommonControls/.NET4 示例/MyDb.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4 示例/MyDb.xml b/Bin/Debug/CommonControls/.NET4 示例/MyDb.xml
index d0448da..7c2a910 100644
--- a/Bin/Debug/CommonControls/.NET4 示例/MyDb.xml
+++ b/Bin/Debug/CommonControls/.NET4 示例/MyDb.xml
@@ -2265,7 +2265,7 @@
-
+
判断鼠标位置是不是在指定的矩形中
@@ -4921,195 +4921,11 @@
Win32 API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取当前前台窗口句柄
-
-
-
-
-
- 获得当前活动窗体
-
-
-
-
-
- 设置活动窗体
-
-
-
-
-
-
- 获取类名
-
-
-
-
-
-
-
-
- 获取当前线程对应的进程ID
-
-
-
-
-
-
-
- 判断指定句柄是否是一个窗口
-
-
-
-
-
-
- 获取窗口标题
-
-
-
-
-
-
-
-
- 查找窗口
-
-
-
-
-
-
-
- 设置父窗口
-
-
-
-
-
-
-
- 移动窗口
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 结束进程
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
- 获取窗口位置和大小
-
-
-
-
-
-
-
- 矩形
-
-
-
-
- 最左坐标
-
-
-
-
- 最上坐标
-
-
-
-
- 最右坐标
-
-
-
-
- 最下坐标
-
-
WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。
@@ -5125,26 +4941,6 @@
用户通道ID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
获取消息
@@ -5172,6 +4968,19 @@
+
+
+
+
+
+
+
+ 结束进程
+
+
+
+
+
@@ -5282,6 +5091,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5326,12 +5155,12 @@
-
+
-
+
模拟鼠标点击
@@ -5342,7 +5171,7 @@
-
+
模拟按键
@@ -5351,16 +5180,16 @@
-
+
-
+
-
+ 移动窗口
@@ -5370,7 +5199,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5378,14 +5227,90 @@
-
+
The GetParent function retrieves a handle to the specified window's parent or owner.
Handle to the window whose parent window handle is to be retrieved.
If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取当前前台窗口句柄
+
+
+
+
+
+ 获得当前活动窗体
+
+
+
+
+
+ 设置活动窗体
+
+
+
+
+
+
+ 获取类名
+
+
+
+
+
+
+
+
+ 获取当前线程对应的进程ID
+
+
+
+
+
+
+
+ 判断指定句柄是否是一个窗口
+
+
+
+
+
+
+ 获取窗口标题
+
+
+
+
+
+
+
@@ -5395,7 +5320,7 @@
-
+
@@ -5405,7 +5330,7 @@
-
+
@@ -5415,21 +5340,48 @@
-
+
+
+ 发送消息
+
+
+
+
+
+
+
+
+
+ 发送消息
+
+
+
+
+
+
+
-
+
-
+
+
+ 查找窗口
+
+
+
+
+
+
The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window.
@@ -5439,7 +5391,7 @@
Pointer to a null-terminated string that specifies the window name (the window's title).
If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL.
-
+
The InvalidateRect function adds a rectangle to the specified window's update region.
@@ -5448,7 +5400,7 @@
Erase state.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
@@ -5456,7 +5408,7 @@
Validation rectangle coordinates.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
@@ -5464,14 +5416,14 @@
-
+
-
+
@@ -5479,7 +5431,7 @@
-
+
@@ -5487,7 +5439,7 @@
-
+
@@ -5495,7 +5447,7 @@
-
+
@@ -5510,7 +5462,7 @@
-
+
@@ -5519,7 +5471,7 @@
-
+
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
@@ -5534,7 +5486,7 @@
Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.
If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.
-
+
diff --git a/Bin/Debug/CommonControls/.NET4 示例/MyDb_SQLite.dll b/Bin/Debug/CommonControls/.NET4 示例/MyDb_SQLite.dll
index 22442eb..a99e192 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/MyDb_SQLite.dll and b/Bin/Debug/CommonControls/.NET4 示例/MyDb_SQLite.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4 示例/RyPrint.dll b/Bin/Debug/CommonControls/.NET4 示例/RyPrint.dll
index 7c940e0..1620912 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/RyPrint.dll and b/Bin/Debug/CommonControls/.NET4 示例/RyPrint.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4 示例/RyWeb.dll b/Bin/Debug/CommonControls/.NET4 示例/RyWeb.dll
index b74266b..f6d810a 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/RyWeb.dll and b/Bin/Debug/CommonControls/.NET4 示例/RyWeb.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4 示例/UserDb/Win.dat b/Bin/Debug/CommonControls/.NET4 示例/UserDb/Win.dat
index ec189b4..c97611e 100644
--- a/Bin/Debug/CommonControls/.NET4 示例/UserDb/Win.dat
+++ b/Bin/Debug/CommonControls/.NET4 示例/UserDb/Win.dat
@@ -1,2 +1,2 @@
[Money_Op]
-hwnd=3875764
+hwnd=2562494
diff --git a/Bin/Debug/CommonControls/.NET4 示例/cUpdate.dat b/Bin/Debug/CommonControls/.NET4 示例/cUpdate.dat
index 2a90ba4..b009344 100644
--- a/Bin/Debug/CommonControls/.NET4 示例/cUpdate.dat
+++ b/Bin/Debug/CommonControls/.NET4 示例/cUpdate.dat
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/Bin/Debug/CommonControls/.NET4 示例/ryControls.dll b/Bin/Debug/CommonControls/.NET4 示例/ryControls.dll
index b6d1767..4cf6803 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/ryControls.dll and b/Bin/Debug/CommonControls/.NET4 示例/ryControls.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4 示例/ryControls.xml b/Bin/Debug/CommonControls/.NET4 示例/ryControls.xml
index bdc5975..6f16ded 100644
--- a/Bin/Debug/CommonControls/.NET4 示例/ryControls.xml
+++ b/Bin/Debug/CommonControls/.NET4 示例/ryControls.xml
@@ -6534,271 +6534,6 @@
清空所有控件
-
-
- 鼠标的当前位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 控件的状态。
-
-
-
-
- 正常
-
-
-
-
- 鼠标经过
-
-
-
-
- 鼠标按下
-
-
-
-
- 建立圆角路径的样式。
-
-
-
-
- 四个角都不是圆角。
-
-
-
-
- 四个角都为圆角。
-
-
-
-
- 左边两个角为圆角。
-
-
-
-
- 右边两个角为圆角。
-
-
-
-
- 上边两个角为圆角。
-
-
-
-
- 下边两个角为圆角。
-
-
-
-
- 左下角为圆角。
-
-
-
-
- 右下角为圆角。
-
-
-
-
-
-
-
-
-
- 普通按钮按下事件
-
-
-
-
- 分割按钮按下事件
-
-
-
-
-
-
-
-
-
- 下拉菜单与按钮的距离
-
-
-
-
- 图片高度
-
-
-
-
- 分割按钮的宽度
-
-
-
-
- 当鼠标按下时图片和文字是否产生偏移
-
-
-
-
- 是否一直显示按钮边框,设置为false则只在鼠标经过和按下时显示边框
-
-
-
-
- 当显示分割按钮时,分割按钮的箭头颜色
-
-
-
-
- 按钮的边框颜色
-
-
-
-
- 按钮内边框颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 图片宽度
-
-
-
-
- 图片高度
-
-
-
-
- 按钮圆角样式
-
-
-
-
- 按钮圆角弧度
-
-
-
-
- 图片与文字之间的间距
-
-
-
-
- 按钮当前状态
-
-
-
-
- 鼠标当前所在位置
-
-
-
-
- 普通按钮矩形位置
-
-
-
-
- 分割按钮矩形位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取图像以及文字的位置
-
-
-
-
-
-
-
- 画边框与背景
-
-
-
-
- 画分割按钮
-
-
-
-
-
-
-
-
-
-
-
- 建立带有圆角样式的矩形路径
-
- 用来建立路径的矩形。
- 圆角的大小
- 圆角的样式
- 是否把矩形长宽减 1,以便画出边框
- 建立的路径
-
This enum represents the possible browser commands
@@ -7974,6 +7709,1343 @@
+
+
+ a form that supports custom theme
+
+
+
+
+ 标签新建按钮事件
+
+
+
+
+ 标签关闭按钮事件
+
+
+
+
+ 标签创建时事件
+
+
+
+
+ 在标签栏创建时激发
+
+
+
+
+
+
+ 内边距
+
+
+
+
+ 默认内边距
+
+
+
+
+ 标题
+
+
+
+
+ 皮肤/主题
+
+
+
+
+ 是否可拖动改变窗体大小
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 标题栏高度
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 控制按钮相对于右上角的偏移量
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题距离左边的距离
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 是否显示阴影
+
+
+
+
+ 窗体阴影宽度
+
+
+
+
+ 使用阴影来缩放
+
+
+
+
+ 窗体阴影颜色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区区域,坐标相对于窗体左上角
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区大小
+
+
+
+
+ 表示MDI标签栏的区域,包括bottom-region
+
+
+
+
+ MGdUI皮肤
+
+
+
+
+ 获取子窗体
+
+
+
+
+
+ 通过sendmessage方式激活子窗体以避免闪烁
+
+
+
+
+
+ 当子窗体关闭时激发
+
+
+
+
+
+
+ 子窗体可视化变化
+
+
+
+
+
+
+ 获取当前的子窗体列表
+
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最小化
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最大化
+
+
+
+
+ to make the client area to have 3D view
+
+
+
+
+ 消息
+
+
+
+
+
+ 画UI
+
+
+
+
+
+ 在画背景时激发
+
+
+
+
+
+ 重写该方法解决窗体每次还原都会变大的问题
+
+
+
+
+ 重写该方法解决在VS设计器中,每次保存一个新的尺寸,再打开尺寸会变大的问题
+
+
+
+
+ 创建控件时激发
+
+
+
+
+ 窗体可见变化时激发
+
+
+
+
+
+ 大小改变时激发
+
+
+
+
+
+ 在位置变化时激发
+
+
+
+
+
+ 窗体激活
+
+
+
+
+
+ 窗体关闭后激发
+
+
+
+
+
+ 加载时
+
+
+
+
+
+ 在子窗体激活时激发
+
+
+
+
+
+ 标签菜单
+
+
+
+
+ 窗体上移动鼠标时激发
+
+
+
+
+
+ 获取当前点击的标签项
+
+
+
+
+ 在窗体上按下鼠标时激发
+
+
+
+
+
+ 在窗体上放开鼠标时激发
+
+
+
+
+
+ 在鼠标离开窗体时激发
+
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ 该类处理mdi-bar的绘制及鼠标事件管理
+
+
+
+
+ use left,top,right to location the bar in owner form,
+ the margin is from Form.ClientRectangle
+
+
+
+
+ 整个标签栏高度,包含标签栏底部区域、标签、标签顶部空隙
+
+
+
+
+ 标签栏底部区域的高度
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 是否显示标签栏背景
+
+
+
+
+ 标签栏左内边距
+
+
+
+
+ 标签栏右内边距
+
+
+
+
+ 标签高度
+
+
+
+
+ 激活的标签高度
+
+
+
+
+ tab顶部与bar顶部的空间,这个值用来计算 BarHeight
+
+
+
+
+ 每个标签的左右边界可以不是垂直的,而是都有一个斜度
+
+
+
+
+ tab与tab之间的距离,用负值可以使tab有重叠的效果
+
+
+
+
+ 标签是否显示图标
+
+
+
+
+ 是否显示标签关闭按钮
+
+
+
+
+ 标签图标大小
+
+
+
+
+ 标签图标距离左边的距离
+
+
+
+
+ 标签文字距离左边的距离
+
+
+
+
+ 标签关闭按钮的大小
+
+
+
+
+ 标签关闭按钮距离右边的距离
+
+
+
+
+ 是否显示新建标签按钮
+
+
+
+
+ 新建标签按钮的大小
+
+
+
+
+ 新建标签距离左边的距离
+
+
+
+
+ 按钮与Bar底部的距离
+
+
+
+
+ 一个tab允许的最小宽度
+
+
+
+
+ 一个tab允许的最大显示宽度
+
+
+
+
+ 标签正常宽度
+
+
+
+
+ 同步_listTabItems与mdi主窗体实际存在的子form
+
+
+
+
+ 为每个tab分配空间,如果tab数目太多,则有些会被隐藏
+
+
+
+
+ 重绘整个标签栏
+
+
+
+
+
+ 处理鼠标事件。该方法会触发一些click事件,重刷一些按钮等
+
+
+
+
+
+
+ 该类表示一个单独的标签项
+
+
+
+
+ 该标签所对应的窗体
+
+
+
+
+ 最终分配到的整个tab的宽度
+
+
+
+
+ 表示所对应的form是否仍未被关闭
+
+
+
+
+ 是否因空间不足而被隐藏
+
+
+
+
+ 返回全部显示该标签文本所需的长度
+
+
+
+
+
+ 返回显示全部文本时该tab所需的宽度,该宽度不超过bar-container
+ 规定的tabmaxwidth
+
+
+
+
+
+ 居左
+
+
+
+
+ 显示在最后一个标签后面
+
+
+
+
+ 该类封装设置一个主题所需的信息,可以继承该类实现不同的主题
+
+
+
+
+ 主题名称,用于标识主题,对主题进行简单描述
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 窗体标题栏高度
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏文本左边距
+
+
+
+
+ 控制按钮(关闭按钮)相对于窗体右上角的偏移量
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 是否使用默认的圆角样式,该样式为左上角和右上角圆角,
+ 最好在窗体边框较粗时才使用该样式
+
+
+
+
+ 是否在标题栏上绘制图标
+
+
+
+
+ 是否在标题栏上绘制文本
+
+
+
+
+ 是否显示窗体阴影
+
+
+
+
+ 窗体阴影大小
+
+
+
+
+ 拖动窗体阴影是否可以改变窗体大小
+
+
+
+
+ 阴影的颜色,可以设置成其他颜色而不一定是黑色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 是否在客户区边界画线使其看起来有立体感
+
+
+
+
+ 窗体标题栏文字是否居中显示
+
+
+
+
+ 窗体边框最外一像素的颜色
+
+
+
+
+ 窗体边框第二最外像素的颜色
+
+
+
+
+ 窗体边框其他部分颜色,如果窗体边框大小大于2,则其他像素将用此颜色画出
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置上边的颜色值
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置下边的颜色值
+
+
+
+
+ 标题栏文字颜色
+
+
+
+
+ 窗体背景颜色,该值将覆盖窗体自带的BackColor属性值
+
+
+
+
+ 窗体关闭按钮的颜色集合
+
+
+
+
+ 窗体最大化/还原按钮的颜色集合
+
+
+
+
+ 窗体最小化按钮的颜色集合
+
+
+
+
+ 默认状态下关闭按钮背景图片
+
+
+
+
+ 鼠标移过去时关闭按钮背景图片
+
+
+
+
+ 鼠标按下时关闭按钮背景图片
+
+
+
+
+ 默认状态下最大化按钮背景图片
+
+
+
+
+ 鼠标移过去时最大化按钮背景图片
+
+
+
+
+ 鼠标按下时最大化按钮背景图片
+
+
+
+
+ 默认状态下恢复按钮背景图片
+
+
+
+
+ 鼠标移过去时恢复按钮背景图片
+
+
+
+
+ 鼠标按下时恢复按钮背景图片
+
+
+
+
+ 默认状态下最小化按钮背景图片
+
+
+
+
+ 鼠标移过去时最小化按钮背景图片
+
+
+
+
+ 鼠标按下时最小化按钮背景图片
+
+
+
+
+ 是否用SendMessage的方式切换子窗体,以避免子窗体切换时产生的闪烁
+
+
+
+
+ Mdi-Bar与窗体左、上、右边界的距离,只用到这三个值,Bottom值没用到。
+ 用这三个值来确定Mdi-Bar的宽度及其在窗体中的位置
+
+
+
+
+ 内部左边空白,第一个标签将从这个空白距离之后开始
+
+
+
+
+ 标签栏内部右边空白
+
+
+
+
+ 标签栏背景颜色
+
+
+
+
+ 标签栏边框颜色
+
+
+
+
+ 标签栏背景图片
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 标签栏下边区域的背景颜色
+
+
+
+
+ 标签栏下边区域的高度
+
+
+
+
+ 标签高度
+
+
+
+
+ 被选中的标签高度,可以设置成与TabHeight不一样的值,以突出显示被选中状态
+
+
+
+
+ 标签之间的距离,设成负值可以使标签有重叠的效果
+
+
+
+
+ 标签的最大宽度,任何情况下标签都不能超过这个宽度
+
+
+
+
+ 标签正常宽度,如果标签需要很短的宽度(比如20像素)就可以显示完上面的文字,
+ 但是Mdi-Bar上有足够的空间时,标签会以正常宽度(比如100像素)显示
+
+
+
+
+ 标签最小宽度,当标签小于这个宽度时将被隐藏
+
+
+
+
+ 标签梯度大小,标签可以不以矩形方式显示,而是有一个梯度/斜度。
+
+
+
+
+ 标签顶部空白,这个值用于参与计算Mdi-Bar高度,计算方式为:
+ Mdi-Bar Height = BottomRegionHeight + TabHeight + TabTopSpace
+
+
+
+
+ 标签上是否显示子窗体图标
+
+
+
+
+ 标签上是否显示子窗体关闭图标
+
+
+
+
+ 选中状态的标签的上部背景色,与下部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 选中状态的标签的下部背景色,与上部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 标签激活时字体颜色
+
+
+
+
+ 非选中状态的标签的字体颜色
+
+
+
+
+ 非选中状态的标签的上部背景色
+
+
+
+
+ 非选中状态的标签的下部背景色
+
+
+
+
+ 标签外边框颜色
+
+
+
+
+ 标签内边框颜色,这个颜色一般具有一定的透明度
+
+
+
+
+ 是否显示标签边框
+
+
+
+
+ 是否显示默认的新建标签按钮(NewTabBtn)
+
+
+
+
+ NewTabBtn与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 新建标签按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 新建标签按钮大小
+
+
+
+
+ 按钮颜色集合
+
+
+
+
+ 是否一直显示ListAllBtn,即使在没有标签被隐藏的情况下
+
+
+
+
+ 《显示全部标签》按钮的位置
+
+
+
+
+ 《显示全部标签》按钮与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 《显示全部标签》按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 《显示全部标签》按钮的颜色
+
+
+
+
+ 《显示全部标签》按钮的大小
+
+
+
+
+ 皮肤主题
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+
+ 引发 ThemeChanged 事件
+
+
+
+
+
+ 指示鼠标位于哪个区域
+
+
+
+
+ 控件Value值发生变化后引发
+
+
+
+
+ 控件绘制MainLine前引发, 可以设置Cancel参数来取消默认的绘制
+
+
+
+
+ 控件绘制Button前引发
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+ 引发 BeforePaintMainLine 事件
+
+
+
+
+ 引发 BeforePaintButton 事件
+
+
+
+
+ 将Value值加一个LargeChange量
+
+
+
+
+ 将Value值减一个LargeChange量
+
+
+
+
+ 将Value值加一个SmallChange量
+
+
+
+
+ 将Value值减一个SmallChange量
+
+
+
+
+ 提供产生各种路径的静态方法,比如圆角路径、关闭按钮上的x路径、+号路径
+
+
+
+
+ 圆角样式
+
+
+
+
+ 无
+
+
+
+
+ 所有
+
+
+
+
+ 上
+
+
+
+
+ 下
+
+
+
+
+ 左
+
+
+
+
+ 右
+
+
+
+
+ SimpleObject指的是只有一种状态(不像普通按钮一样有三种状态),并且其上的元素
+ 布局比较简单的Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 基础皮肤
+
+
+
+
+ VS2013风格皮肤
+
+
+
+
+ this theme is just for chrome one quarter style
+
+
+
+
+ for diamond ring style only
+
+
+
+
+ Location of cursor hot spot returnet in WM_NCHITTEST.
+
+
+
+
+ On the screen background or on a dividing line between windows
+ (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error).
+
+
+
+
+ In a window currently covered by another window in the same thread
+ (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT).
+
+
+
+
+ On the screen background or on a dividing line between windows.
+
+
+
+ In a client area.
+
+
+ In a title bar.
+
+
+ In a window menu or in a Close button in a child window.
+
+
+ In a size box (same as HTSIZE).
+
+
+ In a menu.
+
+
+ In a horizontal scroll bar.
+
+
+ In the vertical scroll bar.
+
+
+ In a Minimize button.
+
+
+ In a Maximize button.
+
+
+ In the left border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the right border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the upper-horizontal border of a window.
+
+
+ In the upper-left corner of a window border.
+
+
+ In the upper-right corner of a window border.
+
+
+ In the lower-horizontal border of a resizable window
+ (the user can click the mouse to resize the window vertically).
+
+
+ In the lower-left corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the lower-right corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the border of a window that does not have a sizing border.
+
+
+ In a Close button.
+
+
+ In a Help button.
+
+
+
+ Contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates.
+
+
+
+
+ Contains the coordinates of the window before it was moved or resized.
+
+
+
+
+ Contains the coordinates of the window's client area before the window was moved or resized.
+
+
+
+
+ Pointer to a WINDOWPOS structure that contains the size and position values specified in the operation that moved or resized the window.
+
+
+
+
+
+
+
+
+
+ 是否在这个按钮上按下了鼠标未释放
+
+
+
+
+ 是否可见
+
+
+
+
+
+
+
+
+
+ 画两次可以加深颜色
+
+
+
+
+ 用于在click事件中传回数据
+
+
+
+
+ 获取或设置是否将绘制完全限制在指定的区域内
+
+
+
+
+
+
+
+
+
+
+
+
+
+
线条图
diff --git a/Bin/Debug/CommonControls/.NET4 示例/ryUpdate.dll b/Bin/Debug/CommonControls/.NET4 示例/ryUpdate.dll
index f4747e9..b0c2da2 100644
Binary files a/Bin/Debug/CommonControls/.NET4 示例/ryUpdate.dll and b/Bin/Debug/CommonControls/.NET4 示例/ryUpdate.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/MyDb.dll b/Bin/Debug/CommonControls/.NET4/MyDb.dll
index b59bdf0..20affa9 100644
Binary files a/Bin/Debug/CommonControls/.NET4/MyDb.dll and b/Bin/Debug/CommonControls/.NET4/MyDb.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/MyDb.xml b/Bin/Debug/CommonControls/.NET4/MyDb.xml
index d0448da..7c2a910 100644
--- a/Bin/Debug/CommonControls/.NET4/MyDb.xml
+++ b/Bin/Debug/CommonControls/.NET4/MyDb.xml
@@ -2265,7 +2265,7 @@
-
+
判断鼠标位置是不是在指定的矩形中
@@ -4921,195 +4921,11 @@
Win32 API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取当前前台窗口句柄
-
-
-
-
-
- 获得当前活动窗体
-
-
-
-
-
- 设置活动窗体
-
-
-
-
-
-
- 获取类名
-
-
-
-
-
-
-
-
- 获取当前线程对应的进程ID
-
-
-
-
-
-
-
- 判断指定句柄是否是一个窗口
-
-
-
-
-
-
- 获取窗口标题
-
-
-
-
-
-
-
-
- 查找窗口
-
-
-
-
-
-
-
- 设置父窗口
-
-
-
-
-
-
-
- 移动窗口
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 结束进程
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
- 获取窗口位置和大小
-
-
-
-
-
-
-
- 矩形
-
-
-
-
- 最左坐标
-
-
-
-
- 最上坐标
-
-
-
-
- 最右坐标
-
-
-
-
- 最下坐标
-
-
WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。
@@ -5125,26 +4941,6 @@
用户通道ID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
获取消息
@@ -5172,6 +4968,19 @@
+
+
+
+
+
+
+
+ 结束进程
+
+
+
+
+
@@ -5282,6 +5091,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5326,12 +5155,12 @@
-
+
-
+
模拟鼠标点击
@@ -5342,7 +5171,7 @@
-
+
模拟按键
@@ -5351,16 +5180,16 @@
-
+
-
+
-
+ 移动窗口
@@ -5370,7 +5199,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5378,14 +5227,90 @@
-
+
The GetParent function retrieves a handle to the specified window's parent or owner.
Handle to the window whose parent window handle is to be retrieved.
If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取当前前台窗口句柄
+
+
+
+
+
+ 获得当前活动窗体
+
+
+
+
+
+ 设置活动窗体
+
+
+
+
+
+
+ 获取类名
+
+
+
+
+
+
+
+
+ 获取当前线程对应的进程ID
+
+
+
+
+
+
+
+ 判断指定句柄是否是一个窗口
+
+
+
+
+
+
+ 获取窗口标题
+
+
+
+
+
+
+
@@ -5395,7 +5320,7 @@
-
+
@@ -5405,7 +5330,7 @@
-
+
@@ -5415,21 +5340,48 @@
-
+
+
+ 发送消息
+
+
+
+
+
+
+
+
+
+ 发送消息
+
+
+
+
+
+
+
-
+
-
+
+
+ 查找窗口
+
+
+
+
+
+
The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window.
@@ -5439,7 +5391,7 @@
Pointer to a null-terminated string that specifies the window name (the window's title).
If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL.
-
+
The InvalidateRect function adds a rectangle to the specified window's update region.
@@ -5448,7 +5400,7 @@
Erase state.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
@@ -5456,7 +5408,7 @@
Validation rectangle coordinates.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
@@ -5464,14 +5416,14 @@
-
+
-
+
@@ -5479,7 +5431,7 @@
-
+
@@ -5487,7 +5439,7 @@
-
+
@@ -5495,7 +5447,7 @@
-
+
@@ -5510,7 +5462,7 @@
-
+
@@ -5519,7 +5471,7 @@
-
+
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
@@ -5534,7 +5486,7 @@
Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.
If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.
-
+
diff --git a/Bin/Debug/CommonControls/.NET4/MyDb_MSSQL.dll b/Bin/Debug/CommonControls/.NET4/MyDb_MSSQL.dll
index aea2286..c0a5756 100644
Binary files a/Bin/Debug/CommonControls/.NET4/MyDb_MSSQL.dll and b/Bin/Debug/CommonControls/.NET4/MyDb_MSSQL.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/MyDb_MySQL.dll b/Bin/Debug/CommonControls/.NET4/MyDb_MySQL.dll
index 57b2b9a..6d26184 100644
Binary files a/Bin/Debug/CommonControls/.NET4/MyDb_MySQL.dll and b/Bin/Debug/CommonControls/.NET4/MyDb_MySQL.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/MyDb_SQLite.dll b/Bin/Debug/CommonControls/.NET4/MyDb_SQLite.dll
index 22442eb..a99e192 100644
Binary files a/Bin/Debug/CommonControls/.NET4/MyDb_SQLite.dll and b/Bin/Debug/CommonControls/.NET4/MyDb_SQLite.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/RyPrint.dll b/Bin/Debug/CommonControls/.NET4/RyPrint.dll
index 7c940e0..1620912 100644
Binary files a/Bin/Debug/CommonControls/.NET4/RyPrint.dll and b/Bin/Debug/CommonControls/.NET4/RyPrint.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/RyWeb.dll b/Bin/Debug/CommonControls/.NET4/RyWeb.dll
index f4bd044..486873b 100644
Binary files a/Bin/Debug/CommonControls/.NET4/RyWeb.dll and b/Bin/Debug/CommonControls/.NET4/RyWeb.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/ryControls.dll b/Bin/Debug/CommonControls/.NET4/ryControls.dll
index b6d1767..4cf6803 100644
Binary files a/Bin/Debug/CommonControls/.NET4/ryControls.dll and b/Bin/Debug/CommonControls/.NET4/ryControls.dll differ
diff --git a/Bin/Debug/CommonControls/.NET4/ryControls.xml b/Bin/Debug/CommonControls/.NET4/ryControls.xml
index bdc5975..6f16ded 100644
--- a/Bin/Debug/CommonControls/.NET4/ryControls.xml
+++ b/Bin/Debug/CommonControls/.NET4/ryControls.xml
@@ -6534,271 +6534,6 @@
清空所有控件
-
-
- 鼠标的当前位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 控件的状态。
-
-
-
-
- 正常
-
-
-
-
- 鼠标经过
-
-
-
-
- 鼠标按下
-
-
-
-
- 建立圆角路径的样式。
-
-
-
-
- 四个角都不是圆角。
-
-
-
-
- 四个角都为圆角。
-
-
-
-
- 左边两个角为圆角。
-
-
-
-
- 右边两个角为圆角。
-
-
-
-
- 上边两个角为圆角。
-
-
-
-
- 下边两个角为圆角。
-
-
-
-
- 左下角为圆角。
-
-
-
-
- 右下角为圆角。
-
-
-
-
-
-
-
-
-
- 普通按钮按下事件
-
-
-
-
- 分割按钮按下事件
-
-
-
-
-
-
-
-
-
- 下拉菜单与按钮的距离
-
-
-
-
- 图片高度
-
-
-
-
- 分割按钮的宽度
-
-
-
-
- 当鼠标按下时图片和文字是否产生偏移
-
-
-
-
- 是否一直显示按钮边框,设置为false则只在鼠标经过和按下时显示边框
-
-
-
-
- 当显示分割按钮时,分割按钮的箭头颜色
-
-
-
-
- 按钮的边框颜色
-
-
-
-
- 按钮内边框颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 图片宽度
-
-
-
-
- 图片高度
-
-
-
-
- 按钮圆角样式
-
-
-
-
- 按钮圆角弧度
-
-
-
-
- 图片与文字之间的间距
-
-
-
-
- 按钮当前状态
-
-
-
-
- 鼠标当前所在位置
-
-
-
-
- 普通按钮矩形位置
-
-
-
-
- 分割按钮矩形位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取图像以及文字的位置
-
-
-
-
-
-
-
- 画边框与背景
-
-
-
-
- 画分割按钮
-
-
-
-
-
-
-
-
-
-
-
- 建立带有圆角样式的矩形路径
-
- 用来建立路径的矩形。
- 圆角的大小
- 圆角的样式
- 是否把矩形长宽减 1,以便画出边框
- 建立的路径
-
This enum represents the possible browser commands
@@ -7974,6 +7709,1343 @@
+
+
+ a form that supports custom theme
+
+
+
+
+ 标签新建按钮事件
+
+
+
+
+ 标签关闭按钮事件
+
+
+
+
+ 标签创建时事件
+
+
+
+
+ 在标签栏创建时激发
+
+
+
+
+
+
+ 内边距
+
+
+
+
+ 默认内边距
+
+
+
+
+ 标题
+
+
+
+
+ 皮肤/主题
+
+
+
+
+ 是否可拖动改变窗体大小
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 标题栏高度
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 控制按钮相对于右上角的偏移量
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题距离左边的距离
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 是否显示阴影
+
+
+
+
+ 窗体阴影宽度
+
+
+
+
+ 使用阴影来缩放
+
+
+
+
+ 窗体阴影颜色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区区域,坐标相对于窗体左上角
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区大小
+
+
+
+
+ 表示MDI标签栏的区域,包括bottom-region
+
+
+
+
+ MGdUI皮肤
+
+
+
+
+ 获取子窗体
+
+
+
+
+
+ 通过sendmessage方式激活子窗体以避免闪烁
+
+
+
+
+
+ 当子窗体关闭时激发
+
+
+
+
+
+
+ 子窗体可视化变化
+
+
+
+
+
+
+ 获取当前的子窗体列表
+
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最小化
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最大化
+
+
+
+
+ to make the client area to have 3D view
+
+
+
+
+ 消息
+
+
+
+
+
+ 画UI
+
+
+
+
+
+ 在画背景时激发
+
+
+
+
+
+ 重写该方法解决窗体每次还原都会变大的问题
+
+
+
+
+ 重写该方法解决在VS设计器中,每次保存一个新的尺寸,再打开尺寸会变大的问题
+
+
+
+
+ 创建控件时激发
+
+
+
+
+ 窗体可见变化时激发
+
+
+
+
+
+ 大小改变时激发
+
+
+
+
+
+ 在位置变化时激发
+
+
+
+
+
+ 窗体激活
+
+
+
+
+
+ 窗体关闭后激发
+
+
+
+
+
+ 加载时
+
+
+
+
+
+ 在子窗体激活时激发
+
+
+
+
+
+ 标签菜单
+
+
+
+
+ 窗体上移动鼠标时激发
+
+
+
+
+
+ 获取当前点击的标签项
+
+
+
+
+ 在窗体上按下鼠标时激发
+
+
+
+
+
+ 在窗体上放开鼠标时激发
+
+
+
+
+
+ 在鼠标离开窗体时激发
+
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ 该类处理mdi-bar的绘制及鼠标事件管理
+
+
+
+
+ use left,top,right to location the bar in owner form,
+ the margin is from Form.ClientRectangle
+
+
+
+
+ 整个标签栏高度,包含标签栏底部区域、标签、标签顶部空隙
+
+
+
+
+ 标签栏底部区域的高度
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 是否显示标签栏背景
+
+
+
+
+ 标签栏左内边距
+
+
+
+
+ 标签栏右内边距
+
+
+
+
+ 标签高度
+
+
+
+
+ 激活的标签高度
+
+
+
+
+ tab顶部与bar顶部的空间,这个值用来计算 BarHeight
+
+
+
+
+ 每个标签的左右边界可以不是垂直的,而是都有一个斜度
+
+
+
+
+ tab与tab之间的距离,用负值可以使tab有重叠的效果
+
+
+
+
+ 标签是否显示图标
+
+
+
+
+ 是否显示标签关闭按钮
+
+
+
+
+ 标签图标大小
+
+
+
+
+ 标签图标距离左边的距离
+
+
+
+
+ 标签文字距离左边的距离
+
+
+
+
+ 标签关闭按钮的大小
+
+
+
+
+ 标签关闭按钮距离右边的距离
+
+
+
+
+ 是否显示新建标签按钮
+
+
+
+
+ 新建标签按钮的大小
+
+
+
+
+ 新建标签距离左边的距离
+
+
+
+
+ 按钮与Bar底部的距离
+
+
+
+
+ 一个tab允许的最小宽度
+
+
+
+
+ 一个tab允许的最大显示宽度
+
+
+
+
+ 标签正常宽度
+
+
+
+
+ 同步_listTabItems与mdi主窗体实际存在的子form
+
+
+
+
+ 为每个tab分配空间,如果tab数目太多,则有些会被隐藏
+
+
+
+
+ 重绘整个标签栏
+
+
+
+
+
+ 处理鼠标事件。该方法会触发一些click事件,重刷一些按钮等
+
+
+
+
+
+
+ 该类表示一个单独的标签项
+
+
+
+
+ 该标签所对应的窗体
+
+
+
+
+ 最终分配到的整个tab的宽度
+
+
+
+
+ 表示所对应的form是否仍未被关闭
+
+
+
+
+ 是否因空间不足而被隐藏
+
+
+
+
+ 返回全部显示该标签文本所需的长度
+
+
+
+
+
+ 返回显示全部文本时该tab所需的宽度,该宽度不超过bar-container
+ 规定的tabmaxwidth
+
+
+
+
+
+ 居左
+
+
+
+
+ 显示在最后一个标签后面
+
+
+
+
+ 该类封装设置一个主题所需的信息,可以继承该类实现不同的主题
+
+
+
+
+ 主题名称,用于标识主题,对主题进行简单描述
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 窗体标题栏高度
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏文本左边距
+
+
+
+
+ 控制按钮(关闭按钮)相对于窗体右上角的偏移量
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 是否使用默认的圆角样式,该样式为左上角和右上角圆角,
+ 最好在窗体边框较粗时才使用该样式
+
+
+
+
+ 是否在标题栏上绘制图标
+
+
+
+
+ 是否在标题栏上绘制文本
+
+
+
+
+ 是否显示窗体阴影
+
+
+
+
+ 窗体阴影大小
+
+
+
+
+ 拖动窗体阴影是否可以改变窗体大小
+
+
+
+
+ 阴影的颜色,可以设置成其他颜色而不一定是黑色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 是否在客户区边界画线使其看起来有立体感
+
+
+
+
+ 窗体标题栏文字是否居中显示
+
+
+
+
+ 窗体边框最外一像素的颜色
+
+
+
+
+ 窗体边框第二最外像素的颜色
+
+
+
+
+ 窗体边框其他部分颜色,如果窗体边框大小大于2,则其他像素将用此颜色画出
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置上边的颜色值
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置下边的颜色值
+
+
+
+
+ 标题栏文字颜色
+
+
+
+
+ 窗体背景颜色,该值将覆盖窗体自带的BackColor属性值
+
+
+
+
+ 窗体关闭按钮的颜色集合
+
+
+
+
+ 窗体最大化/还原按钮的颜色集合
+
+
+
+
+ 窗体最小化按钮的颜色集合
+
+
+
+
+ 默认状态下关闭按钮背景图片
+
+
+
+
+ 鼠标移过去时关闭按钮背景图片
+
+
+
+
+ 鼠标按下时关闭按钮背景图片
+
+
+
+
+ 默认状态下最大化按钮背景图片
+
+
+
+
+ 鼠标移过去时最大化按钮背景图片
+
+
+
+
+ 鼠标按下时最大化按钮背景图片
+
+
+
+
+ 默认状态下恢复按钮背景图片
+
+
+
+
+ 鼠标移过去时恢复按钮背景图片
+
+
+
+
+ 鼠标按下时恢复按钮背景图片
+
+
+
+
+ 默认状态下最小化按钮背景图片
+
+
+
+
+ 鼠标移过去时最小化按钮背景图片
+
+
+
+
+ 鼠标按下时最小化按钮背景图片
+
+
+
+
+ 是否用SendMessage的方式切换子窗体,以避免子窗体切换时产生的闪烁
+
+
+
+
+ Mdi-Bar与窗体左、上、右边界的距离,只用到这三个值,Bottom值没用到。
+ 用这三个值来确定Mdi-Bar的宽度及其在窗体中的位置
+
+
+
+
+ 内部左边空白,第一个标签将从这个空白距离之后开始
+
+
+
+
+ 标签栏内部右边空白
+
+
+
+
+ 标签栏背景颜色
+
+
+
+
+ 标签栏边框颜色
+
+
+
+
+ 标签栏背景图片
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 标签栏下边区域的背景颜色
+
+
+
+
+ 标签栏下边区域的高度
+
+
+
+
+ 标签高度
+
+
+
+
+ 被选中的标签高度,可以设置成与TabHeight不一样的值,以突出显示被选中状态
+
+
+
+
+ 标签之间的距离,设成负值可以使标签有重叠的效果
+
+
+
+
+ 标签的最大宽度,任何情况下标签都不能超过这个宽度
+
+
+
+
+ 标签正常宽度,如果标签需要很短的宽度(比如20像素)就可以显示完上面的文字,
+ 但是Mdi-Bar上有足够的空间时,标签会以正常宽度(比如100像素)显示
+
+
+
+
+ 标签最小宽度,当标签小于这个宽度时将被隐藏
+
+
+
+
+ 标签梯度大小,标签可以不以矩形方式显示,而是有一个梯度/斜度。
+
+
+
+
+ 标签顶部空白,这个值用于参与计算Mdi-Bar高度,计算方式为:
+ Mdi-Bar Height = BottomRegionHeight + TabHeight + TabTopSpace
+
+
+
+
+ 标签上是否显示子窗体图标
+
+
+
+
+ 标签上是否显示子窗体关闭图标
+
+
+
+
+ 选中状态的标签的上部背景色,与下部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 选中状态的标签的下部背景色,与上部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 标签激活时字体颜色
+
+
+
+
+ 非选中状态的标签的字体颜色
+
+
+
+
+ 非选中状态的标签的上部背景色
+
+
+
+
+ 非选中状态的标签的下部背景色
+
+
+
+
+ 标签外边框颜色
+
+
+
+
+ 标签内边框颜色,这个颜色一般具有一定的透明度
+
+
+
+
+ 是否显示标签边框
+
+
+
+
+ 是否显示默认的新建标签按钮(NewTabBtn)
+
+
+
+
+ NewTabBtn与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 新建标签按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 新建标签按钮大小
+
+
+
+
+ 按钮颜色集合
+
+
+
+
+ 是否一直显示ListAllBtn,即使在没有标签被隐藏的情况下
+
+
+
+
+ 《显示全部标签》按钮的位置
+
+
+
+
+ 《显示全部标签》按钮与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 《显示全部标签》按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 《显示全部标签》按钮的颜色
+
+
+
+
+ 《显示全部标签》按钮的大小
+
+
+
+
+ 皮肤主题
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+
+ 引发 ThemeChanged 事件
+
+
+
+
+
+ 指示鼠标位于哪个区域
+
+
+
+
+ 控件Value值发生变化后引发
+
+
+
+
+ 控件绘制MainLine前引发, 可以设置Cancel参数来取消默认的绘制
+
+
+
+
+ 控件绘制Button前引发
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+ 引发 BeforePaintMainLine 事件
+
+
+
+
+ 引发 BeforePaintButton 事件
+
+
+
+
+ 将Value值加一个LargeChange量
+
+
+
+
+ 将Value值减一个LargeChange量
+
+
+
+
+ 将Value值加一个SmallChange量
+
+
+
+
+ 将Value值减一个SmallChange量
+
+
+
+
+ 提供产生各种路径的静态方法,比如圆角路径、关闭按钮上的x路径、+号路径
+
+
+
+
+ 圆角样式
+
+
+
+
+ 无
+
+
+
+
+ 所有
+
+
+
+
+ 上
+
+
+
+
+ 下
+
+
+
+
+ 左
+
+
+
+
+ 右
+
+
+
+
+ SimpleObject指的是只有一种状态(不像普通按钮一样有三种状态),并且其上的元素
+ 布局比较简单的Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 基础皮肤
+
+
+
+
+ VS2013风格皮肤
+
+
+
+
+ this theme is just for chrome one quarter style
+
+
+
+
+ for diamond ring style only
+
+
+
+
+ Location of cursor hot spot returnet in WM_NCHITTEST.
+
+
+
+
+ On the screen background or on a dividing line between windows
+ (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error).
+
+
+
+
+ In a window currently covered by another window in the same thread
+ (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT).
+
+
+
+
+ On the screen background or on a dividing line between windows.
+
+
+
+ In a client area.
+
+
+ In a title bar.
+
+
+ In a window menu or in a Close button in a child window.
+
+
+ In a size box (same as HTSIZE).
+
+
+ In a menu.
+
+
+ In a horizontal scroll bar.
+
+
+ In the vertical scroll bar.
+
+
+ In a Minimize button.
+
+
+ In a Maximize button.
+
+
+ In the left border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the right border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the upper-horizontal border of a window.
+
+
+ In the upper-left corner of a window border.
+
+
+ In the upper-right corner of a window border.
+
+
+ In the lower-horizontal border of a resizable window
+ (the user can click the mouse to resize the window vertically).
+
+
+ In the lower-left corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the lower-right corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the border of a window that does not have a sizing border.
+
+
+ In a Close button.
+
+
+ In a Help button.
+
+
+
+ Contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates.
+
+
+
+
+ Contains the coordinates of the window before it was moved or resized.
+
+
+
+
+ Contains the coordinates of the window's client area before the window was moved or resized.
+
+
+
+
+ Pointer to a WINDOWPOS structure that contains the size and position values specified in the operation that moved or resized the window.
+
+
+
+
+
+
+
+
+
+ 是否在这个按钮上按下了鼠标未释放
+
+
+
+
+ 是否可见
+
+
+
+
+
+
+
+
+
+ 画两次可以加深颜色
+
+
+
+
+ 用于在click事件中传回数据
+
+
+
+
+ 获取或设置是否将绘制完全限制在指定的区域内
+
+
+
+
+
+
+
+
+
+
+
+
+
+
线条图
diff --git a/Bin/Debug/CommonControls/.NET4/ryUpdate.dll b/Bin/Debug/CommonControls/.NET4/ryUpdate.dll
index f4747e9..b0c2da2 100644
Binary files a/Bin/Debug/CommonControls/.NET4/ryUpdate.dll and b/Bin/Debug/CommonControls/.NET4/ryUpdate.dll differ
diff --git a/Bin/Release/CommonControls/.NET4 示例/Itrycn_Project.exe b/Bin/Release/CommonControls/.NET4 示例/Itrycn_Project.exe
index afa1540..0bf19d8 100644
Binary files a/Bin/Release/CommonControls/.NET4 示例/Itrycn_Project.exe and b/Bin/Release/CommonControls/.NET4 示例/Itrycn_Project.exe differ
diff --git a/Bin/Release/CommonControls/.NET4 示例/MyDb.dll b/Bin/Release/CommonControls/.NET4 示例/MyDb.dll
index 9e3a194..716755b 100644
Binary files a/Bin/Release/CommonControls/.NET4 示例/MyDb.dll and b/Bin/Release/CommonControls/.NET4 示例/MyDb.dll differ
diff --git a/Bin/Release/CommonControls/.NET4 示例/MyDb.xml b/Bin/Release/CommonControls/.NET4 示例/MyDb.xml
index d0448da..7c2a910 100644
--- a/Bin/Release/CommonControls/.NET4 示例/MyDb.xml
+++ b/Bin/Release/CommonControls/.NET4 示例/MyDb.xml
@@ -2265,7 +2265,7 @@
-
+
判断鼠标位置是不是在指定的矩形中
@@ -4921,195 +4921,11 @@
Win32 API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取当前前台窗口句柄
-
-
-
-
-
- 获得当前活动窗体
-
-
-
-
-
- 设置活动窗体
-
-
-
-
-
-
- 获取类名
-
-
-
-
-
-
-
-
- 获取当前线程对应的进程ID
-
-
-
-
-
-
-
- 判断指定句柄是否是一个窗口
-
-
-
-
-
-
- 获取窗口标题
-
-
-
-
-
-
-
-
- 查找窗口
-
-
-
-
-
-
-
- 设置父窗口
-
-
-
-
-
-
-
- 移动窗口
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 结束进程
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
- 获取窗口位置和大小
-
-
-
-
-
-
-
- 矩形
-
-
-
-
- 最左坐标
-
-
-
-
- 最上坐标
-
-
-
-
- 最右坐标
-
-
-
-
- 最下坐标
-
-
WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。
@@ -5125,26 +4941,6 @@
用户通道ID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
获取消息
@@ -5172,6 +4968,19 @@
+
+
+
+
+
+
+
+ 结束进程
+
+
+
+
+
@@ -5282,6 +5091,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5326,12 +5155,12 @@
-
+
-
+
模拟鼠标点击
@@ -5342,7 +5171,7 @@
-
+
模拟按键
@@ -5351,16 +5180,16 @@
-
+
-
+
-
+ 移动窗口
@@ -5370,7 +5199,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5378,14 +5227,90 @@
-
+
The GetParent function retrieves a handle to the specified window's parent or owner.
Handle to the window whose parent window handle is to be retrieved.
If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取当前前台窗口句柄
+
+
+
+
+
+ 获得当前活动窗体
+
+
+
+
+
+ 设置活动窗体
+
+
+
+
+
+
+ 获取类名
+
+
+
+
+
+
+
+
+ 获取当前线程对应的进程ID
+
+
+
+
+
+
+
+ 判断指定句柄是否是一个窗口
+
+
+
+
+
+
+ 获取窗口标题
+
+
+
+
+
+
+
@@ -5395,7 +5320,7 @@
-
+
@@ -5405,7 +5330,7 @@
-
+
@@ -5415,21 +5340,48 @@
-
+
+
+ 发送消息
+
+
+
+
+
+
+
+
+
+ 发送消息
+
+
+
+
+
+
+
-
+
-
+
+
+ 查找窗口
+
+
+
+
+
+
The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window.
@@ -5439,7 +5391,7 @@
Pointer to a null-terminated string that specifies the window name (the window's title).
If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL.
-
+
The InvalidateRect function adds a rectangle to the specified window's update region.
@@ -5448,7 +5400,7 @@
Erase state.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
@@ -5456,7 +5408,7 @@
Validation rectangle coordinates.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
@@ -5464,14 +5416,14 @@
-
+
-
+
@@ -5479,7 +5431,7 @@
-
+
@@ -5487,7 +5439,7 @@
-
+
@@ -5495,7 +5447,7 @@
-
+
@@ -5510,7 +5462,7 @@
-
+
@@ -5519,7 +5471,7 @@
-
+
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
@@ -5534,7 +5486,7 @@
Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.
If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.
-
+
diff --git a/Bin/Release/CommonControls/.NET4 示例/MyDb_SQLite.dll b/Bin/Release/CommonControls/.NET4 示例/MyDb_SQLite.dll
index 4e0df6a..91ab9c9 100644
Binary files a/Bin/Release/CommonControls/.NET4 示例/MyDb_SQLite.dll and b/Bin/Release/CommonControls/.NET4 示例/MyDb_SQLite.dll differ
diff --git a/Bin/Release/CommonControls/.NET4 示例/RyPrint.dll b/Bin/Release/CommonControls/.NET4 示例/RyPrint.dll
index 34cc36c..70fa08b 100644
Binary files a/Bin/Release/CommonControls/.NET4 示例/RyPrint.dll and b/Bin/Release/CommonControls/.NET4 示例/RyPrint.dll differ
diff --git a/Bin/Release/CommonControls/.NET4 示例/RyWeb.dll b/Bin/Release/CommonControls/.NET4 示例/RyWeb.dll
index b74266b..f6d810a 100644
Binary files a/Bin/Release/CommonControls/.NET4 示例/RyWeb.dll and b/Bin/Release/CommonControls/.NET4 示例/RyWeb.dll differ
diff --git a/Bin/Release/CommonControls/.NET4 示例/ryControls.dll b/Bin/Release/CommonControls/.NET4 示例/ryControls.dll
index 1a16cd4..a2b8852 100644
Binary files a/Bin/Release/CommonControls/.NET4 示例/ryControls.dll and b/Bin/Release/CommonControls/.NET4 示例/ryControls.dll differ
diff --git a/Bin/Release/CommonControls/.NET4 示例/ryControls.xml b/Bin/Release/CommonControls/.NET4 示例/ryControls.xml
index bdc5975..6f16ded 100644
--- a/Bin/Release/CommonControls/.NET4 示例/ryControls.xml
+++ b/Bin/Release/CommonControls/.NET4 示例/ryControls.xml
@@ -6534,271 +6534,6 @@
清空所有控件
-
-
- 鼠标的当前位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 控件的状态。
-
-
-
-
- 正常
-
-
-
-
- 鼠标经过
-
-
-
-
- 鼠标按下
-
-
-
-
- 建立圆角路径的样式。
-
-
-
-
- 四个角都不是圆角。
-
-
-
-
- 四个角都为圆角。
-
-
-
-
- 左边两个角为圆角。
-
-
-
-
- 右边两个角为圆角。
-
-
-
-
- 上边两个角为圆角。
-
-
-
-
- 下边两个角为圆角。
-
-
-
-
- 左下角为圆角。
-
-
-
-
- 右下角为圆角。
-
-
-
-
-
-
-
-
-
- 普通按钮按下事件
-
-
-
-
- 分割按钮按下事件
-
-
-
-
-
-
-
-
-
- 下拉菜单与按钮的距离
-
-
-
-
- 图片高度
-
-
-
-
- 分割按钮的宽度
-
-
-
-
- 当鼠标按下时图片和文字是否产生偏移
-
-
-
-
- 是否一直显示按钮边框,设置为false则只在鼠标经过和按下时显示边框
-
-
-
-
- 当显示分割按钮时,分割按钮的箭头颜色
-
-
-
-
- 按钮的边框颜色
-
-
-
-
- 按钮内边框颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 图片宽度
-
-
-
-
- 图片高度
-
-
-
-
- 按钮圆角样式
-
-
-
-
- 按钮圆角弧度
-
-
-
-
- 图片与文字之间的间距
-
-
-
-
- 按钮当前状态
-
-
-
-
- 鼠标当前所在位置
-
-
-
-
- 普通按钮矩形位置
-
-
-
-
- 分割按钮矩形位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取图像以及文字的位置
-
-
-
-
-
-
-
- 画边框与背景
-
-
-
-
- 画分割按钮
-
-
-
-
-
-
-
-
-
-
-
- 建立带有圆角样式的矩形路径
-
- 用来建立路径的矩形。
- 圆角的大小
- 圆角的样式
- 是否把矩形长宽减 1,以便画出边框
- 建立的路径
-
This enum represents the possible browser commands
@@ -7974,6 +7709,1343 @@
+
+
+ a form that supports custom theme
+
+
+
+
+ 标签新建按钮事件
+
+
+
+
+ 标签关闭按钮事件
+
+
+
+
+ 标签创建时事件
+
+
+
+
+ 在标签栏创建时激发
+
+
+
+
+
+
+ 内边距
+
+
+
+
+ 默认内边距
+
+
+
+
+ 标题
+
+
+
+
+ 皮肤/主题
+
+
+
+
+ 是否可拖动改变窗体大小
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 标题栏高度
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 控制按钮相对于右上角的偏移量
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题距离左边的距离
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 是否显示阴影
+
+
+
+
+ 窗体阴影宽度
+
+
+
+
+ 使用阴影来缩放
+
+
+
+
+ 窗体阴影颜色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区区域,坐标相对于窗体左上角
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区大小
+
+
+
+
+ 表示MDI标签栏的区域,包括bottom-region
+
+
+
+
+ MGdUI皮肤
+
+
+
+
+ 获取子窗体
+
+
+
+
+
+ 通过sendmessage方式激活子窗体以避免闪烁
+
+
+
+
+
+ 当子窗体关闭时激发
+
+
+
+
+
+
+ 子窗体可视化变化
+
+
+
+
+
+
+ 获取当前的子窗体列表
+
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最小化
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最大化
+
+
+
+
+ to make the client area to have 3D view
+
+
+
+
+ 消息
+
+
+
+
+
+ 画UI
+
+
+
+
+
+ 在画背景时激发
+
+
+
+
+
+ 重写该方法解决窗体每次还原都会变大的问题
+
+
+
+
+ 重写该方法解决在VS设计器中,每次保存一个新的尺寸,再打开尺寸会变大的问题
+
+
+
+
+ 创建控件时激发
+
+
+
+
+ 窗体可见变化时激发
+
+
+
+
+
+ 大小改变时激发
+
+
+
+
+
+ 在位置变化时激发
+
+
+
+
+
+ 窗体激活
+
+
+
+
+
+ 窗体关闭后激发
+
+
+
+
+
+ 加载时
+
+
+
+
+
+ 在子窗体激活时激发
+
+
+
+
+
+ 标签菜单
+
+
+
+
+ 窗体上移动鼠标时激发
+
+
+
+
+
+ 获取当前点击的标签项
+
+
+
+
+ 在窗体上按下鼠标时激发
+
+
+
+
+
+ 在窗体上放开鼠标时激发
+
+
+
+
+
+ 在鼠标离开窗体时激发
+
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ 该类处理mdi-bar的绘制及鼠标事件管理
+
+
+
+
+ use left,top,right to location the bar in owner form,
+ the margin is from Form.ClientRectangle
+
+
+
+
+ 整个标签栏高度,包含标签栏底部区域、标签、标签顶部空隙
+
+
+
+
+ 标签栏底部区域的高度
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 是否显示标签栏背景
+
+
+
+
+ 标签栏左内边距
+
+
+
+
+ 标签栏右内边距
+
+
+
+
+ 标签高度
+
+
+
+
+ 激活的标签高度
+
+
+
+
+ tab顶部与bar顶部的空间,这个值用来计算 BarHeight
+
+
+
+
+ 每个标签的左右边界可以不是垂直的,而是都有一个斜度
+
+
+
+
+ tab与tab之间的距离,用负值可以使tab有重叠的效果
+
+
+
+
+ 标签是否显示图标
+
+
+
+
+ 是否显示标签关闭按钮
+
+
+
+
+ 标签图标大小
+
+
+
+
+ 标签图标距离左边的距离
+
+
+
+
+ 标签文字距离左边的距离
+
+
+
+
+ 标签关闭按钮的大小
+
+
+
+
+ 标签关闭按钮距离右边的距离
+
+
+
+
+ 是否显示新建标签按钮
+
+
+
+
+ 新建标签按钮的大小
+
+
+
+
+ 新建标签距离左边的距离
+
+
+
+
+ 按钮与Bar底部的距离
+
+
+
+
+ 一个tab允许的最小宽度
+
+
+
+
+ 一个tab允许的最大显示宽度
+
+
+
+
+ 标签正常宽度
+
+
+
+
+ 同步_listTabItems与mdi主窗体实际存在的子form
+
+
+
+
+ 为每个tab分配空间,如果tab数目太多,则有些会被隐藏
+
+
+
+
+ 重绘整个标签栏
+
+
+
+
+
+ 处理鼠标事件。该方法会触发一些click事件,重刷一些按钮等
+
+
+
+
+
+
+ 该类表示一个单独的标签项
+
+
+
+
+ 该标签所对应的窗体
+
+
+
+
+ 最终分配到的整个tab的宽度
+
+
+
+
+ 表示所对应的form是否仍未被关闭
+
+
+
+
+ 是否因空间不足而被隐藏
+
+
+
+
+ 返回全部显示该标签文本所需的长度
+
+
+
+
+
+ 返回显示全部文本时该tab所需的宽度,该宽度不超过bar-container
+ 规定的tabmaxwidth
+
+
+
+
+
+ 居左
+
+
+
+
+ 显示在最后一个标签后面
+
+
+
+
+ 该类封装设置一个主题所需的信息,可以继承该类实现不同的主题
+
+
+
+
+ 主题名称,用于标识主题,对主题进行简单描述
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 窗体标题栏高度
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏文本左边距
+
+
+
+
+ 控制按钮(关闭按钮)相对于窗体右上角的偏移量
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 是否使用默认的圆角样式,该样式为左上角和右上角圆角,
+ 最好在窗体边框较粗时才使用该样式
+
+
+
+
+ 是否在标题栏上绘制图标
+
+
+
+
+ 是否在标题栏上绘制文本
+
+
+
+
+ 是否显示窗体阴影
+
+
+
+
+ 窗体阴影大小
+
+
+
+
+ 拖动窗体阴影是否可以改变窗体大小
+
+
+
+
+ 阴影的颜色,可以设置成其他颜色而不一定是黑色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 是否在客户区边界画线使其看起来有立体感
+
+
+
+
+ 窗体标题栏文字是否居中显示
+
+
+
+
+ 窗体边框最外一像素的颜色
+
+
+
+
+ 窗体边框第二最外像素的颜色
+
+
+
+
+ 窗体边框其他部分颜色,如果窗体边框大小大于2,则其他像素将用此颜色画出
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置上边的颜色值
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置下边的颜色值
+
+
+
+
+ 标题栏文字颜色
+
+
+
+
+ 窗体背景颜色,该值将覆盖窗体自带的BackColor属性值
+
+
+
+
+ 窗体关闭按钮的颜色集合
+
+
+
+
+ 窗体最大化/还原按钮的颜色集合
+
+
+
+
+ 窗体最小化按钮的颜色集合
+
+
+
+
+ 默认状态下关闭按钮背景图片
+
+
+
+
+ 鼠标移过去时关闭按钮背景图片
+
+
+
+
+ 鼠标按下时关闭按钮背景图片
+
+
+
+
+ 默认状态下最大化按钮背景图片
+
+
+
+
+ 鼠标移过去时最大化按钮背景图片
+
+
+
+
+ 鼠标按下时最大化按钮背景图片
+
+
+
+
+ 默认状态下恢复按钮背景图片
+
+
+
+
+ 鼠标移过去时恢复按钮背景图片
+
+
+
+
+ 鼠标按下时恢复按钮背景图片
+
+
+
+
+ 默认状态下最小化按钮背景图片
+
+
+
+
+ 鼠标移过去时最小化按钮背景图片
+
+
+
+
+ 鼠标按下时最小化按钮背景图片
+
+
+
+
+ 是否用SendMessage的方式切换子窗体,以避免子窗体切换时产生的闪烁
+
+
+
+
+ Mdi-Bar与窗体左、上、右边界的距离,只用到这三个值,Bottom值没用到。
+ 用这三个值来确定Mdi-Bar的宽度及其在窗体中的位置
+
+
+
+
+ 内部左边空白,第一个标签将从这个空白距离之后开始
+
+
+
+
+ 标签栏内部右边空白
+
+
+
+
+ 标签栏背景颜色
+
+
+
+
+ 标签栏边框颜色
+
+
+
+
+ 标签栏背景图片
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 标签栏下边区域的背景颜色
+
+
+
+
+ 标签栏下边区域的高度
+
+
+
+
+ 标签高度
+
+
+
+
+ 被选中的标签高度,可以设置成与TabHeight不一样的值,以突出显示被选中状态
+
+
+
+
+ 标签之间的距离,设成负值可以使标签有重叠的效果
+
+
+
+
+ 标签的最大宽度,任何情况下标签都不能超过这个宽度
+
+
+
+
+ 标签正常宽度,如果标签需要很短的宽度(比如20像素)就可以显示完上面的文字,
+ 但是Mdi-Bar上有足够的空间时,标签会以正常宽度(比如100像素)显示
+
+
+
+
+ 标签最小宽度,当标签小于这个宽度时将被隐藏
+
+
+
+
+ 标签梯度大小,标签可以不以矩形方式显示,而是有一个梯度/斜度。
+
+
+
+
+ 标签顶部空白,这个值用于参与计算Mdi-Bar高度,计算方式为:
+ Mdi-Bar Height = BottomRegionHeight + TabHeight + TabTopSpace
+
+
+
+
+ 标签上是否显示子窗体图标
+
+
+
+
+ 标签上是否显示子窗体关闭图标
+
+
+
+
+ 选中状态的标签的上部背景色,与下部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 选中状态的标签的下部背景色,与上部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 标签激活时字体颜色
+
+
+
+
+ 非选中状态的标签的字体颜色
+
+
+
+
+ 非选中状态的标签的上部背景色
+
+
+
+
+ 非选中状态的标签的下部背景色
+
+
+
+
+ 标签外边框颜色
+
+
+
+
+ 标签内边框颜色,这个颜色一般具有一定的透明度
+
+
+
+
+ 是否显示标签边框
+
+
+
+
+ 是否显示默认的新建标签按钮(NewTabBtn)
+
+
+
+
+ NewTabBtn与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 新建标签按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 新建标签按钮大小
+
+
+
+
+ 按钮颜色集合
+
+
+
+
+ 是否一直显示ListAllBtn,即使在没有标签被隐藏的情况下
+
+
+
+
+ 《显示全部标签》按钮的位置
+
+
+
+
+ 《显示全部标签》按钮与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 《显示全部标签》按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 《显示全部标签》按钮的颜色
+
+
+
+
+ 《显示全部标签》按钮的大小
+
+
+
+
+ 皮肤主题
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+
+ 引发 ThemeChanged 事件
+
+
+
+
+
+ 指示鼠标位于哪个区域
+
+
+
+
+ 控件Value值发生变化后引发
+
+
+
+
+ 控件绘制MainLine前引发, 可以设置Cancel参数来取消默认的绘制
+
+
+
+
+ 控件绘制Button前引发
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+ 引发 BeforePaintMainLine 事件
+
+
+
+
+ 引发 BeforePaintButton 事件
+
+
+
+
+ 将Value值加一个LargeChange量
+
+
+
+
+ 将Value值减一个LargeChange量
+
+
+
+
+ 将Value值加一个SmallChange量
+
+
+
+
+ 将Value值减一个SmallChange量
+
+
+
+
+ 提供产生各种路径的静态方法,比如圆角路径、关闭按钮上的x路径、+号路径
+
+
+
+
+ 圆角样式
+
+
+
+
+ 无
+
+
+
+
+ 所有
+
+
+
+
+ 上
+
+
+
+
+ 下
+
+
+
+
+ 左
+
+
+
+
+ 右
+
+
+
+
+ SimpleObject指的是只有一种状态(不像普通按钮一样有三种状态),并且其上的元素
+ 布局比较简单的Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 基础皮肤
+
+
+
+
+ VS2013风格皮肤
+
+
+
+
+ this theme is just for chrome one quarter style
+
+
+
+
+ for diamond ring style only
+
+
+
+
+ Location of cursor hot spot returnet in WM_NCHITTEST.
+
+
+
+
+ On the screen background or on a dividing line between windows
+ (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error).
+
+
+
+
+ In a window currently covered by another window in the same thread
+ (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT).
+
+
+
+
+ On the screen background or on a dividing line between windows.
+
+
+
+ In a client area.
+
+
+ In a title bar.
+
+
+ In a window menu or in a Close button in a child window.
+
+
+ In a size box (same as HTSIZE).
+
+
+ In a menu.
+
+
+ In a horizontal scroll bar.
+
+
+ In the vertical scroll bar.
+
+
+ In a Minimize button.
+
+
+ In a Maximize button.
+
+
+ In the left border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the right border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the upper-horizontal border of a window.
+
+
+ In the upper-left corner of a window border.
+
+
+ In the upper-right corner of a window border.
+
+
+ In the lower-horizontal border of a resizable window
+ (the user can click the mouse to resize the window vertically).
+
+
+ In the lower-left corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the lower-right corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the border of a window that does not have a sizing border.
+
+
+ In a Close button.
+
+
+ In a Help button.
+
+
+
+ Contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates.
+
+
+
+
+ Contains the coordinates of the window before it was moved or resized.
+
+
+
+
+ Contains the coordinates of the window's client area before the window was moved or resized.
+
+
+
+
+ Pointer to a WINDOWPOS structure that contains the size and position values specified in the operation that moved or resized the window.
+
+
+
+
+
+
+
+
+
+ 是否在这个按钮上按下了鼠标未释放
+
+
+
+
+ 是否可见
+
+
+
+
+
+
+
+
+
+ 画两次可以加深颜色
+
+
+
+
+ 用于在click事件中传回数据
+
+
+
+
+ 获取或设置是否将绘制完全限制在指定的区域内
+
+
+
+
+
+
+
+
+
+
+
+
+
+
线条图
diff --git a/Bin/Release/CommonControls/.NET4 示例/ryUpdate.dll b/Bin/Release/CommonControls/.NET4 示例/ryUpdate.dll
index 5834986..c5773f7 100644
Binary files a/Bin/Release/CommonControls/.NET4 示例/ryUpdate.dll and b/Bin/Release/CommonControls/.NET4 示例/ryUpdate.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/MyDb.dll b/Bin/Release/CommonControls/.NET4/MyDb.dll
index 9e3a194..716755b 100644
Binary files a/Bin/Release/CommonControls/.NET4/MyDb.dll and b/Bin/Release/CommonControls/.NET4/MyDb.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/MyDb.xml b/Bin/Release/CommonControls/.NET4/MyDb.xml
index d0448da..7c2a910 100644
--- a/Bin/Release/CommonControls/.NET4/MyDb.xml
+++ b/Bin/Release/CommonControls/.NET4/MyDb.xml
@@ -2265,7 +2265,7 @@
-
+
判断鼠标位置是不是在指定的矩形中
@@ -4921,195 +4921,11 @@
Win32 API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取当前前台窗口句柄
-
-
-
-
-
- 获得当前活动窗体
-
-
-
-
-
- 设置活动窗体
-
-
-
-
-
-
- 获取类名
-
-
-
-
-
-
-
-
- 获取当前线程对应的进程ID
-
-
-
-
-
-
-
- 判断指定句柄是否是一个窗口
-
-
-
-
-
-
- 获取窗口标题
-
-
-
-
-
-
-
-
- 查找窗口
-
-
-
-
-
-
-
- 设置父窗口
-
-
-
-
-
-
-
- 移动窗口
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 结束进程
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
- 获取窗口位置和大小
-
-
-
-
-
-
-
- 矩形
-
-
-
-
- 最左坐标
-
-
-
-
- 最上坐标
-
-
-
-
- 最右坐标
-
-
-
-
- 最下坐标
-
-
WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。
@@ -5125,26 +4941,6 @@
用户通道ID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
获取消息
@@ -5172,6 +4968,19 @@
+
+
+
+
+
+
+
+ 结束进程
+
+
+
+
+
@@ -5282,6 +5091,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5326,12 +5155,12 @@
-
+
-
+
模拟鼠标点击
@@ -5342,7 +5171,7 @@
-
+
模拟按键
@@ -5351,16 +5180,16 @@
-
+
-
+
-
+ 移动窗口
@@ -5370,7 +5199,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5378,14 +5227,90 @@
-
+
The GetParent function retrieves a handle to the specified window's parent or owner.
Handle to the window whose parent window handle is to be retrieved.
If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取当前前台窗口句柄
+
+
+
+
+
+ 获得当前活动窗体
+
+
+
+
+
+ 设置活动窗体
+
+
+
+
+
+
+ 获取类名
+
+
+
+
+
+
+
+
+ 获取当前线程对应的进程ID
+
+
+
+
+
+
+
+ 判断指定句柄是否是一个窗口
+
+
+
+
+
+
+ 获取窗口标题
+
+
+
+
+
+
+
@@ -5395,7 +5320,7 @@
-
+
@@ -5405,7 +5330,7 @@
-
+
@@ -5415,21 +5340,48 @@
-
+
+
+ 发送消息
+
+
+
+
+
+
+
+
+
+ 发送消息
+
+
+
+
+
+
+
-
+
-
+
+
+ 查找窗口
+
+
+
+
+
+
The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window.
@@ -5439,7 +5391,7 @@
Pointer to a null-terminated string that specifies the window name (the window's title).
If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL.
-
+
The InvalidateRect function adds a rectangle to the specified window's update region.
@@ -5448,7 +5400,7 @@
Erase state.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
@@ -5456,7 +5408,7 @@
Validation rectangle coordinates.
If the function succeeds, the return value is true.If the function fails, the return value is false.
-
+
@@ -5464,14 +5416,14 @@
-
+
-
+
@@ -5479,7 +5431,7 @@
-
+
@@ -5487,7 +5439,7 @@
-
+
@@ -5495,7 +5447,7 @@
-
+
@@ -5510,7 +5462,7 @@
-
+
@@ -5519,7 +5471,7 @@
-
+
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
@@ -5534,7 +5486,7 @@
Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.
If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.
-
+
diff --git a/Bin/Release/CommonControls/.NET4/MyDb_MSSQL.dll b/Bin/Release/CommonControls/.NET4/MyDb_MSSQL.dll
index 8b9c804..b4403d7 100644
Binary files a/Bin/Release/CommonControls/.NET4/MyDb_MSSQL.dll and b/Bin/Release/CommonControls/.NET4/MyDb_MSSQL.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/MyDb_MySQL.dll b/Bin/Release/CommonControls/.NET4/MyDb_MySQL.dll
index 12727d9..07c6248 100644
Binary files a/Bin/Release/CommonControls/.NET4/MyDb_MySQL.dll and b/Bin/Release/CommonControls/.NET4/MyDb_MySQL.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/MyDb_SQLite.dll b/Bin/Release/CommonControls/.NET4/MyDb_SQLite.dll
index 4e0df6a..91ab9c9 100644
Binary files a/Bin/Release/CommonControls/.NET4/MyDb_SQLite.dll and b/Bin/Release/CommonControls/.NET4/MyDb_SQLite.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/RyPrint.dll b/Bin/Release/CommonControls/.NET4/RyPrint.dll
index 34cc36c..70fa08b 100644
Binary files a/Bin/Release/CommonControls/.NET4/RyPrint.dll and b/Bin/Release/CommonControls/.NET4/RyPrint.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/RyWeb.dll b/Bin/Release/CommonControls/.NET4/RyWeb.dll
index 1130d1f..39ae469 100644
Binary files a/Bin/Release/CommonControls/.NET4/RyWeb.dll and b/Bin/Release/CommonControls/.NET4/RyWeb.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/ryControls.dll b/Bin/Release/CommonControls/.NET4/ryControls.dll
index 1a16cd4..a2b8852 100644
Binary files a/Bin/Release/CommonControls/.NET4/ryControls.dll and b/Bin/Release/CommonControls/.NET4/ryControls.dll differ
diff --git a/Bin/Release/CommonControls/.NET4/ryControls.xml b/Bin/Release/CommonControls/.NET4/ryControls.xml
index bdc5975..6f16ded 100644
--- a/Bin/Release/CommonControls/.NET4/ryControls.xml
+++ b/Bin/Release/CommonControls/.NET4/ryControls.xml
@@ -6534,271 +6534,6 @@
清空所有控件
-
-
- 鼠标的当前位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 控件的状态。
-
-
-
-
- 正常
-
-
-
-
- 鼠标经过
-
-
-
-
- 鼠标按下
-
-
-
-
- 建立圆角路径的样式。
-
-
-
-
- 四个角都不是圆角。
-
-
-
-
- 四个角都为圆角。
-
-
-
-
- 左边两个角为圆角。
-
-
-
-
- 右边两个角为圆角。
-
-
-
-
- 上边两个角为圆角。
-
-
-
-
- 下边两个角为圆角。
-
-
-
-
- 左下角为圆角。
-
-
-
-
- 右下角为圆角。
-
-
-
-
-
-
-
-
-
- 普通按钮按下事件
-
-
-
-
- 分割按钮按下事件
-
-
-
-
-
-
-
-
-
- 下拉菜单与按钮的距离
-
-
-
-
- 图片高度
-
-
-
-
- 分割按钮的宽度
-
-
-
-
- 当鼠标按下时图片和文字是否产生偏移
-
-
-
-
- 是否一直显示按钮边框,设置为false则只在鼠标经过和按下时显示边框
-
-
-
-
- 当显示分割按钮时,分割按钮的箭头颜色
-
-
-
-
- 按钮的边框颜色
-
-
-
-
- 按钮内边框颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 鼠标经过和按下时按钮的渐变背景颜色
-
-
-
-
- 图片宽度
-
-
-
-
- 图片高度
-
-
-
-
- 按钮圆角样式
-
-
-
-
- 按钮圆角弧度
-
-
-
-
- 图片与文字之间的间距
-
-
-
-
- 按钮当前状态
-
-
-
-
- 鼠标当前所在位置
-
-
-
-
- 普通按钮矩形位置
-
-
-
-
- 分割按钮矩形位置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取图像以及文字的位置
-
-
-
-
-
-
-
- 画边框与背景
-
-
-
-
- 画分割按钮
-
-
-
-
-
-
-
-
-
-
-
- 建立带有圆角样式的矩形路径
-
- 用来建立路径的矩形。
- 圆角的大小
- 圆角的样式
- 是否把矩形长宽减 1,以便画出边框
- 建立的路径
-
This enum represents the possible browser commands
@@ -7974,6 +7709,1343 @@
+
+
+ a form that supports custom theme
+
+
+
+
+ 标签新建按钮事件
+
+
+
+
+ 标签关闭按钮事件
+
+
+
+
+ 标签创建时事件
+
+
+
+
+ 在标签栏创建时激发
+
+
+
+
+
+
+ 内边距
+
+
+
+
+ 默认内边距
+
+
+
+
+ 标题
+
+
+
+
+ 皮肤/主题
+
+
+
+
+ 是否可拖动改变窗体大小
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 标题栏高度
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 控制按钮相对于右上角的偏移量
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题距离左边的距离
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 是否显示阴影
+
+
+
+
+ 窗体阴影宽度
+
+
+
+
+ 使用阴影来缩放
+
+
+
+
+ 窗体阴影颜色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区区域,坐标相对于窗体左上角
+
+
+
+
+ 表示去掉自画的边框及标题栏后,剩下的可用的客户区大小
+
+
+
+
+ 表示MDI标签栏的区域,包括bottom-region
+
+
+
+
+ MGdUI皮肤
+
+
+
+
+ 获取子窗体
+
+
+
+
+
+ 通过sendmessage方式激活子窗体以避免闪烁
+
+
+
+
+
+ 当子窗体关闭时激发
+
+
+
+
+
+
+ 子窗体可视化变化
+
+
+
+
+
+
+ 获取当前的子窗体列表
+
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最小化
+
+
+
+
+ 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最大化
+
+
+
+
+ to make the client area to have 3D view
+
+
+
+
+ 消息
+
+
+
+
+
+ 画UI
+
+
+
+
+
+ 在画背景时激发
+
+
+
+
+
+ 重写该方法解决窗体每次还原都会变大的问题
+
+
+
+
+ 重写该方法解决在VS设计器中,每次保存一个新的尺寸,再打开尺寸会变大的问题
+
+
+
+
+ 创建控件时激发
+
+
+
+
+ 窗体可见变化时激发
+
+
+
+
+
+ 大小改变时激发
+
+
+
+
+
+ 在位置变化时激发
+
+
+
+
+
+ 窗体激活
+
+
+
+
+
+ 窗体关闭后激发
+
+
+
+
+
+ 加载时
+
+
+
+
+
+ 在子窗体激活时激发
+
+
+
+
+
+ 标签菜单
+
+
+
+
+ 窗体上移动鼠标时激发
+
+
+
+
+
+ 获取当前点击的标签项
+
+
+
+
+ 在窗体上按下鼠标时激发
+
+
+
+
+
+ 在窗体上放开鼠标时激发
+
+
+
+
+
+ 在鼠标离开窗体时激发
+
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ 该类处理mdi-bar的绘制及鼠标事件管理
+
+
+
+
+ use left,top,right to location the bar in owner form,
+ the margin is from Form.ClientRectangle
+
+
+
+
+ 整个标签栏高度,包含标签栏底部区域、标签、标签顶部空隙
+
+
+
+
+ 标签栏底部区域的高度
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 是否显示标签栏背景
+
+
+
+
+ 标签栏左内边距
+
+
+
+
+ 标签栏右内边距
+
+
+
+
+ 标签高度
+
+
+
+
+ 激活的标签高度
+
+
+
+
+ tab顶部与bar顶部的空间,这个值用来计算 BarHeight
+
+
+
+
+ 每个标签的左右边界可以不是垂直的,而是都有一个斜度
+
+
+
+
+ tab与tab之间的距离,用负值可以使tab有重叠的效果
+
+
+
+
+ 标签是否显示图标
+
+
+
+
+ 是否显示标签关闭按钮
+
+
+
+
+ 标签图标大小
+
+
+
+
+ 标签图标距离左边的距离
+
+
+
+
+ 标签文字距离左边的距离
+
+
+
+
+ 标签关闭按钮的大小
+
+
+
+
+ 标签关闭按钮距离右边的距离
+
+
+
+
+ 是否显示新建标签按钮
+
+
+
+
+ 新建标签按钮的大小
+
+
+
+
+ 新建标签距离左边的距离
+
+
+
+
+ 按钮与Bar底部的距离
+
+
+
+
+ 一个tab允许的最小宽度
+
+
+
+
+ 一个tab允许的最大显示宽度
+
+
+
+
+ 标签正常宽度
+
+
+
+
+ 同步_listTabItems与mdi主窗体实际存在的子form
+
+
+
+
+ 为每个tab分配空间,如果tab数目太多,则有些会被隐藏
+
+
+
+
+ 重绘整个标签栏
+
+
+
+
+
+ 处理鼠标事件。该方法会触发一些click事件,重刷一些按钮等
+
+
+
+
+
+
+ 该类表示一个单独的标签项
+
+
+
+
+ 该标签所对应的窗体
+
+
+
+
+ 最终分配到的整个tab的宽度
+
+
+
+
+ 表示所对应的form是否仍未被关闭
+
+
+
+
+ 是否因空间不足而被隐藏
+
+
+
+
+ 返回全部显示该标签文本所需的长度
+
+
+
+
+
+ 返回显示全部文本时该tab所需的宽度,该宽度不超过bar-container
+ 规定的tabmaxwidth
+
+
+
+
+
+ 居左
+
+
+
+
+ 显示在最后一个标签后面
+
+
+
+
+ 该类封装设置一个主题所需的信息,可以继承该类实现不同的主题
+
+
+
+
+ 主题名称,用于标识主题,对主题进行简单描述
+
+
+
+
+ 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小
+
+
+
+
+ 窗体边框大小
+
+
+
+
+ 窗体标题栏高度
+
+
+
+
+ 标题栏图标与窗体左边框的距离
+
+
+
+
+ 标题栏图标尺寸
+
+
+
+
+ 标题栏文本左边距
+
+
+
+
+ 控制按钮(关闭按钮)相对于窗体右上角的偏移量
+
+
+
+
+ 窗体关闭按钮的尺寸
+
+
+
+
+ 窗体最大化/还原按钮的大小
+
+
+
+
+ 窗体最小化按钮的大小
+
+
+
+
+ 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠
+
+
+
+
+ 窗体圆角程度
+
+
+
+
+ 窗体圆角样式
+
+
+
+
+ 是否使用默认的圆角样式,该样式为左上角和右上角圆角,
+ 最好在窗体边框较粗时才使用该样式
+
+
+
+
+ 是否在标题栏上绘制图标
+
+
+
+
+ 是否在标题栏上绘制文本
+
+
+
+
+ 是否显示窗体阴影
+
+
+
+
+ 窗体阴影大小
+
+
+
+
+ 拖动窗体阴影是否可以改变窗体大小
+
+
+
+
+ 阴影的颜色,可以设置成其他颜色而不一定是黑色
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值
+
+
+
+
+ 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值
+
+
+
+
+ 是否在客户区边界画线使其看起来有立体感
+
+
+
+
+ 窗体标题栏文字是否居中显示
+
+
+
+
+ 窗体边框最外一像素的颜色
+
+
+
+
+ 窗体边框第二最外像素的颜色
+
+
+
+
+ 窗体边框其他部分颜色,如果窗体边框大小大于2,则其他像素将用此颜色画出
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置上边的颜色值
+
+
+
+
+ 标题栏颜色是从上到下渐变的,这个值设置下边的颜色值
+
+
+
+
+ 标题栏文字颜色
+
+
+
+
+ 窗体背景颜色,该值将覆盖窗体自带的BackColor属性值
+
+
+
+
+ 窗体关闭按钮的颜色集合
+
+
+
+
+ 窗体最大化/还原按钮的颜色集合
+
+
+
+
+ 窗体最小化按钮的颜色集合
+
+
+
+
+ 默认状态下关闭按钮背景图片
+
+
+
+
+ 鼠标移过去时关闭按钮背景图片
+
+
+
+
+ 鼠标按下时关闭按钮背景图片
+
+
+
+
+ 默认状态下最大化按钮背景图片
+
+
+
+
+ 鼠标移过去时最大化按钮背景图片
+
+
+
+
+ 鼠标按下时最大化按钮背景图片
+
+
+
+
+ 默认状态下恢复按钮背景图片
+
+
+
+
+ 鼠标移过去时恢复按钮背景图片
+
+
+
+
+ 鼠标按下时恢复按钮背景图片
+
+
+
+
+ 默认状态下最小化按钮背景图片
+
+
+
+
+ 鼠标移过去时最小化按钮背景图片
+
+
+
+
+ 鼠标按下时最小化按钮背景图片
+
+
+
+
+ 是否用SendMessage的方式切换子窗体,以避免子窗体切换时产生的闪烁
+
+
+
+
+ Mdi-Bar与窗体左、上、右边界的距离,只用到这三个值,Bottom值没用到。
+ 用这三个值来确定Mdi-Bar的宽度及其在窗体中的位置
+
+
+
+
+ 内部左边空白,第一个标签将从这个空白距离之后开始
+
+
+
+
+ 标签栏内部右边空白
+
+
+
+
+ 标签栏背景颜色
+
+
+
+
+ 标签栏边框颜色
+
+
+
+
+ 标签栏背景图片
+
+
+
+
+ 是否显示标签栏边框
+
+
+
+
+ 标签栏下边区域的背景颜色
+
+
+
+
+ 标签栏下边区域的高度
+
+
+
+
+ 标签高度
+
+
+
+
+ 被选中的标签高度,可以设置成与TabHeight不一样的值,以突出显示被选中状态
+
+
+
+
+ 标签之间的距离,设成负值可以使标签有重叠的效果
+
+
+
+
+ 标签的最大宽度,任何情况下标签都不能超过这个宽度
+
+
+
+
+ 标签正常宽度,如果标签需要很短的宽度(比如20像素)就可以显示完上面的文字,
+ 但是Mdi-Bar上有足够的空间时,标签会以正常宽度(比如100像素)显示
+
+
+
+
+ 标签最小宽度,当标签小于这个宽度时将被隐藏
+
+
+
+
+ 标签梯度大小,标签可以不以矩形方式显示,而是有一个梯度/斜度。
+
+
+
+
+ 标签顶部空白,这个值用于参与计算Mdi-Bar高度,计算方式为:
+ Mdi-Bar Height = BottomRegionHeight + TabHeight + TabTopSpace
+
+
+
+
+ 标签上是否显示子窗体图标
+
+
+
+
+ 标签上是否显示子窗体关闭图标
+
+
+
+
+ 选中状态的标签的上部背景色,与下部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 选中状态的标签的下部背景色,与上部背景色不同时,标签背景色就有渐变效果
+
+
+
+
+ 标签激活时字体颜色
+
+
+
+
+ 非选中状态的标签的字体颜色
+
+
+
+
+ 非选中状态的标签的上部背景色
+
+
+
+
+ 非选中状态的标签的下部背景色
+
+
+
+
+ 标签外边框颜色
+
+
+
+
+ 标签内边框颜色,这个颜色一般具有一定的透明度
+
+
+
+
+ 是否显示标签边框
+
+
+
+
+ 是否显示默认的新建标签按钮(NewTabBtn)
+
+
+
+
+ NewTabBtn与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 新建标签按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 新建标签按钮大小
+
+
+
+
+ 按钮颜色集合
+
+
+
+
+ 是否一直显示ListAllBtn,即使在没有标签被隐藏的情况下
+
+
+
+
+ 《显示全部标签》按钮的位置
+
+
+
+
+ 《显示全部标签》按钮与下边框的距离,这个值用来定位按钮的Y坐标
+
+
+
+
+ 《显示全部标签》按钮与左边框的距离,这个值用来定位按钮的X坐标
+
+
+
+
+ 《显示全部标签》按钮的颜色
+
+
+
+
+ 《显示全部标签》按钮的大小
+
+
+
+
+ 皮肤主题
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+
+ 引发 ThemeChanged 事件
+
+
+
+
+
+ 指示鼠标位于哪个区域
+
+
+
+
+ 控件Value值发生变化后引发
+
+
+
+
+ 控件绘制MainLine前引发, 可以设置Cancel参数来取消默认的绘制
+
+
+
+
+ 控件绘制Button前引发
+
+
+
+
+ 引发 ValueChanged 事件
+
+
+
+
+ 引发 BeforePaintMainLine 事件
+
+
+
+
+ 引发 BeforePaintButton 事件
+
+
+
+
+ 将Value值加一个LargeChange量
+
+
+
+
+ 将Value值减一个LargeChange量
+
+
+
+
+ 将Value值加一个SmallChange量
+
+
+
+
+ 将Value值减一个SmallChange量
+
+
+
+
+ 提供产生各种路径的静态方法,比如圆角路径、关闭按钮上的x路径、+号路径
+
+
+
+
+ 圆角样式
+
+
+
+
+ 无
+
+
+
+
+ 所有
+
+
+
+
+ 上
+
+
+
+
+ 下
+
+
+
+
+ 左
+
+
+
+
+ 右
+
+
+
+
+ SimpleObject指的是只有一种状态(不像普通按钮一样有三种状态),并且其上的元素
+ 布局比较简单的Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ DevExpress风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 新风格皮肤
+
+
+
+
+ 基础皮肤
+
+
+
+
+ VS2013风格皮肤
+
+
+
+
+ this theme is just for chrome one quarter style
+
+
+
+
+ for diamond ring style only
+
+
+
+
+ Location of cursor hot spot returnet in WM_NCHITTEST.
+
+
+
+
+ On the screen background or on a dividing line between windows
+ (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error).
+
+
+
+
+ In a window currently covered by another window in the same thread
+ (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT).
+
+
+
+
+ On the screen background or on a dividing line between windows.
+
+
+
+ In a client area.
+
+
+ In a title bar.
+
+
+ In a window menu or in a Close button in a child window.
+
+
+ In a size box (same as HTSIZE).
+
+
+ In a menu.
+
+
+ In a horizontal scroll bar.
+
+
+ In the vertical scroll bar.
+
+
+ In a Minimize button.
+
+
+ In a Maximize button.
+
+
+ In the left border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the right border of a resizable window
+ (the user can click the mouse to resize the window horizontally).
+
+
+
+ In the upper-horizontal border of a window.
+
+
+ In the upper-left corner of a window border.
+
+
+ In the upper-right corner of a window border.
+
+
+ In the lower-horizontal border of a resizable window
+ (the user can click the mouse to resize the window vertically).
+
+
+ In the lower-left corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the lower-right corner of a border of a resizable window
+ (the user can click the mouse to resize the window diagonally).
+
+
+ In the border of a window that does not have a sizing border.
+
+
+ In a Close button.
+
+
+ In a Help button.
+
+
+
+ Contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates.
+
+
+
+
+ Contains the coordinates of the window before it was moved or resized.
+
+
+
+
+ Contains the coordinates of the window's client area before the window was moved or resized.
+
+
+
+
+ Pointer to a WINDOWPOS structure that contains the size and position values specified in the operation that moved or resized the window.
+
+
+
+
+
+
+
+
+
+ 是否在这个按钮上按下了鼠标未释放
+
+
+
+
+ 是否可见
+
+
+
+
+
+
+
+
+
+ 画两次可以加深颜色
+
+
+
+
+ 用于在click事件中传回数据
+
+
+
+
+ 获取或设置是否将绘制完全限制在指定的区域内
+
+
+
+
+
+
+
+
+
+
+
+
+
+
线条图
diff --git a/Bin/Release/CommonControls/.NET4/ryUpdate.dll b/Bin/Release/CommonControls/.NET4/ryUpdate.dll
index 5834986..c5773f7 100644
Binary files a/Bin/Release/CommonControls/.NET4/ryUpdate.dll and b/Bin/Release/CommonControls/.NET4/ryUpdate.dll differ
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bc31a23..a0f37eb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,9 @@
-### 2021-02-11更新
+### 2021-02-22更新
+------
+#### ryControls V2.1.2102.2201
+*.[新增]新加入Gdu.WinformUI控件。
+
+### 2021-02-11更新
------
#### MyDb V2.1.2102.1101
- *.[新增]新增Auto类,增加 鼠标模拟操作和按键模拟操作。
diff --git a/Source/.vs/公用控件组V4/v16/.suo b/Source/.vs/公用控件组V4/v16/.suo
index 298fd28..b78dcb7 100644
Binary files a/Source/.vs/公用控件组V4/v16/.suo and b/Source/.vs/公用控件组V4/v16/.suo differ
diff --git a/Source/Itrycn_Project2/FrmStart.cs b/Source/Itrycn_Project2/FrmStart.cs
index b2d7838..52d0fd2 100644
--- a/Source/Itrycn_Project2/FrmStart.cs
+++ b/Source/Itrycn_Project2/FrmStart.cs
@@ -154,7 +154,8 @@ namespace Itrycn_Project2
//var point= button1.PointToScreen(button1.Location);
// ryCommon.Auto.LeftClick(point.X+5, point.Y+5);
textBox1.Focus();
- Auto.PasteText("你好");
+ Auto.GetRect(Handle,out var size);
+ MessageBox.Show(size.ToString());
}
}
}
diff --git a/Source/MyDb/Msg/CustomMsg.cs b/Source/MyDb/Msg/CustomMsg.cs
index b5ff52e..5e85c41 100644
--- a/Source/MyDb/Msg/CustomMsg.cs
+++ b/Source/MyDb/Msg/CustomMsg.cs
@@ -58,7 +58,7 @@ namespace QuickMsg
///
~CustomMsg()
{
- MyDb.RyWin32.SetWindowLong(handle, MyDb.RyWin32.GWL_WNDPROC, oldWndFunc);
+ WinAPI.User32.SetWindowLong(handle, MyDb.RyWin32.GWL_WNDPROC, oldWndFunc);
//System.Windows.Forms.Application.RemoveMessageFilter(this);
}
///
@@ -75,7 +75,7 @@ namespace QuickMsg
///
public void DefWndProc(ref System.Windows.Forms.Message m)
{
- m.Result = MyDb.RyWin32.CallWindowProc(oldWndFunc, m.HWnd, m.Msg, m.WParam, m.LParam);
+ m.Result = WinAPI.User32.CallWindowProc(oldWndFunc, m.HWnd, m.Msg, m.WParam, m.LParam);
if (m.Msg == MyDb.RyWin32.WM_COPYDATA)
{
var msg = MyDb.RyWin32.GetMsg(m, out IntPtr handle);
diff --git a/Source/MyDb/Msg/MsgClient.cs b/Source/MyDb/Msg/MsgClient.cs
index 892615d..e3d94c0 100644
--- a/Source/MyDb/Msg/MsgClient.cs
+++ b/Source/MyDb/Msg/MsgClient.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
+using WinAPI;
namespace QuickMsg
{
@@ -112,7 +113,7 @@ namespace QuickMsg
///
public bool MainExist()
{
- return MyDb.RyWin32.IsWindow(main_handle);
+ return User32.IsWindow(main_handle);
}
private void MSG_OnMsg(object sender, MsgArgs e)
{
diff --git a/Source/MyDb/MyDbV4.csproj b/Source/MyDb/MyDbV4.csproj
index 16504f4..0b890b9 100644
--- a/Source/MyDb/MyDbV4.csproj
+++ b/Source/MyDb/MyDbV4.csproj
@@ -100,6 +100,7 @@
+
diff --git a/Source/MyDb/SysFuns/Auto.cs b/Source/MyDb/SysFuns/Auto.cs
index 846d041..32348c9 100644
--- a/Source/MyDb/SysFuns/Auto.cs
+++ b/Source/MyDb/SysFuns/Auto.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
-using Win32API;
+using WinAPI;
namespace ryCommon
{
@@ -200,7 +200,7 @@ namespace ryCommon
/// 坐标(屏幕坐标)
public static void LeftClick(Point point)
{
- LeftClick(point.X, point.Y);
+ LeftClick(point.X, point.Y);
}
///
///右键单击鼠标(不支持后台单击)
@@ -266,7 +266,7 @@ namespace ryCommon
Rectangle windowRect = new Rectangle();
size = new Size(0, 0);
if (hdcSrc == IntPtr.Zero) { return windowRect; }
- User32.GetWindowRect(handle, ref windowRect);
+ User32.GetWindowRect(handle, out windowRect);
int width = windowRect.Right - windowRect.Left;
int height = windowRect.Bottom - windowRect.Top;
size = new Size(width, height);
@@ -288,7 +288,7 @@ namespace ryCommon
///
///
///
- public static bool IsInRect(MyDb.RyWin32.RECT rect, Point mouse_position)
+ public static bool IsInRect(Rectangle rect, Point mouse_position)
{
return mouse_position.X >= rect.Left && mouse_position.X <= rect.Right && mouse_position.Y >= rect.Top && mouse_position.Y <= rect.Bottom;
}
diff --git a/Source/MyDb/SysFuns/ModalResult.cs b/Source/MyDb/SysFuns/ModalResult.cs
index fdb6885..ebcb8ba 100644
--- a/Source/MyDb/SysFuns/ModalResult.cs
+++ b/Source/MyDb/SysFuns/ModalResult.cs
@@ -1,5 +1,6 @@
using System;
using System.Windows.Forms;
+using WinAPI;
namespace ryCommon
{
@@ -87,7 +88,7 @@ namespace ryCommon
if (_parent != null)
{
sub_Form.StartPosition = FormStartPosition.Manual;
- MyDb.RyWin32.GetWindowRect(_parent.Handle, out var rect);
+ User32.GetWindowRect(_parent.Handle, out var rect);
sub_Form.Top = rect.Top + (rect.Bottom- rect.Top - sub_Form.Height) / 2;
sub_Form.Left = rect.Left + (rect.Right- rect.Left - sub_Form.Width) / 2;
if (_parent.TopMost) { sub_Form.TopMost = true; }
@@ -156,7 +157,7 @@ namespace ryCommon
case FormLocation.ParentMiddle:
if (parent != null)
{
- MyDb.RyWin32.GetWindowRect(parent.Handle, out var rect);
+ User32.GetWindowRect(parent.Handle, out var rect);
x = rect.Left + (rect.Right- rect.Left - sub_Form.Width) / 2;
y = rect.Top + (rect.Bottom- rect.Top - sub_Form.Height) / 2;
}
diff --git a/Source/MyDb/SysFuns/RyForm.cs b/Source/MyDb/SysFuns/RyForm.cs
index 97451a8..0566e9b 100644
--- a/Source/MyDb/SysFuns/RyForm.cs
+++ b/Source/MyDb/SysFuns/RyForm.cs
@@ -5,6 +5,7 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
+using WinAPI;
namespace ryCommon
{
@@ -43,8 +44,8 @@ namespace ryCommon
{
int iSysMenu;
const int MF_BYCOMMAND = 0x400; //0x400-关闭
- iSysMenu = MyDb.RyWin32.GetSystemMenu(iHWND, 0);
- return MyDb.RyWin32.RemoveMenu(iSysMenu, 6, MF_BYCOMMAND);
+ iSysMenu = User32.GetSystemMenu(iHWND, 0);
+ return User32.RemoveMenu(iSysMenu, 6, MF_BYCOMMAND);
}
///
/// 把窗体放到最前
@@ -52,7 +53,7 @@ namespace ryCommon
///
public static void BringToTop(IntPtr iHWND)
{
- MyDb.RyWin32.SetForegroundWindow(iHWND);
+ User32.SetForegroundWindow(iHWND);
}
///
/// 显示窗体
@@ -94,7 +95,7 @@ namespace ryCommon
public static string GetWinText(IntPtr Handle)
{
StringBuilder WinTitle = new StringBuilder(200);
- int len = MyDb.RyWin32.GetWindowText(Handle.ToInt32(), WinTitle, 200);
+ int len = User32.GetWindowText(Handle.ToInt32(), WinTitle, 200);
return WinTitle.ToString();
}
@@ -106,7 +107,7 @@ namespace ryCommon
public static string GetWinClass(IntPtr Handle)
{
StringBuilder WinClass = new StringBuilder(200);
- int len = MyDb.RyWin32.GetClassName(Handle.ToInt32(), WinClass, 200);
+ int len = User32.GetClassName(Handle.ToInt32(), WinClass, 200);
return WinClass.ToString();
}
///
@@ -115,7 +116,7 @@ namespace ryCommon
///
public static IntPtr GetActiveWindow()
{
- return MyDb.RyWin32.GetActiveWindow();
+ return User32.GetActiveWindow();
}
///
/// 设置为当前活动窗口
@@ -124,7 +125,7 @@ namespace ryCommon
///
public static IntPtr SetActiveWindow(IntPtr hwnd)
{
- return MyDb.RyWin32.SetActiveWindow(hwnd);
+ return User32.SetActiveWindow(hwnd);
}
///
/// 根据窗口句柄来获得进程id
@@ -133,7 +134,7 @@ namespace ryCommon
///
public static int GetProcessId(IntPtr hwnd)
{
- MyDb.RyWin32.GetWindowThreadProcessId(hwnd, out int ID);
+ User32.GetWindowThreadProcessId(hwnd, out int ID);
return ID;
}
///
@@ -155,8 +156,8 @@ namespace ryCommon
public static void SetDesktopForm(IntPtr handle)
{
//在构造函数中或者Load中
- IntPtr hDeskTop = MyDb.RyWin32.FindWindow("Progman", null);
- MyDb.RyWin32.SetParent(handle, hDeskTop);
+ IntPtr hDeskTop = WinAPI.User32.FindWindow("Progman", null);
+ WinAPI.User32.SetParent(handle, hDeskTop);
}
///
/// 结束进程
@@ -165,7 +166,7 @@ namespace ryCommon
///
public static long KillPorc(int pid)
{
- return MyDb.RyWin32.TerminateProcess(pid,1);
+ return WinAPI.Kernel32.TerminateProcess(pid,1);
}
///
/// 打开窗体,只打开一个实例(非模态)
diff --git a/Source/MyDb/SysFuns/RyWin32.cs b/Source/MyDb/SysFuns/RyWin32.cs
index cc43549..3348c77 100644
--- a/Source/MyDb/SysFuns/RyWin32.cs
+++ b/Source/MyDb/SysFuns/RyWin32.cs
@@ -5,6 +5,8 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
+using WinAPI;
+using static WinAPI.Struct;
namespace MyDb
{
@@ -13,199 +15,11 @@ namespace MyDb
///
public class RyWin32
{
- ///
- ///
- ///
- ///
- ///
- ///
- [DllImport("USER32.DLL")]
- public static extern int GetSystemMenu(IntPtr hwnd, int bRevert);
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- [DllImport("USER32.DLL")]
- public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);
- ///
- ///
- ///
- ///
- ///
- [DllImport("user32.dll")]
- public static extern bool SetForegroundWindow(IntPtr hWnd);
- ///
- /// 获取当前前台窗口句柄
- ///
- ///
- [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
- public static extern IntPtr GetForegroundWindow();
- ///
- /// 获得当前活动窗体
- ///
- ///
- [DllImport("user32.dll")]
- public static extern IntPtr GetActiveWindow();//获得当前活动窗体
- ///
- /// 设置活动窗体
- ///
- ///
- ///
- [DllImport("user32.dll")]
- public static extern IntPtr SetActiveWindow(IntPtr hwnd);//设置活动窗体
- ///
- /// 获取类名
- ///
- ///
- ///
- ///
- ///
- [DllImport("user32", EntryPoint = "GetClassName", SetLastError = false,
- CharSet = CharSet.Auto, ExactSpelling = false,
- CallingConvention = CallingConvention.StdCall)]
- public static extern int GetClassName(int hWnd, StringBuilder lpClassName, int nMaxCount);
- ///
- /// 获取当前线程对应的进程ID
- ///
- ///
- ///
- ///
- [DllImport("User32.dll", CharSet = CharSet.Auto)]
- public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
- ///
- /// 判断指定句柄是否是一个窗口
- ///
- ///
- ///
- [DllImport("user32.dll", EntryPoint = "IsWindow")]
- public static extern bool IsWindow(IntPtr hWnd);
- ///
- /// 获取窗口标题
- ///
- ///
- ///
- ///
- ///
- [DllImport("user32", SetLastError = true)]
- public static extern int GetWindowText(
- int hWnd,//窗口句柄
- StringBuilder lpString,//标题
- int nMaxCount //最大值
- );
- ///
- /// 查找窗口
- ///
- ///
- ///
- ///
- [DllImport("User32.dll", EntryPoint = "FindWindow")]
- public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
- ///
- /// 设置父窗口
- ///
- ///
- ///
- ///
- [DllImport("user32.dll")]
- public static extern int SetParent(IntPtr hWndChild, IntPtr hWndParent);
- ///
- /// 移动窗口
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- [DllImport("user32.dll", CharSet = CharSet.Auto)]
- public static extern int MoveWindow(IntPtr hWnd, int x, int y, int nWidth, int nHeight, bool BRePaint);
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- [DllImport("User32.dll")]
- public extern static IntPtr CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam);
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- [DllImport("User32.dll")]
- public static extern IntPtr SetWindowLong(IntPtr hwnd, int nIndex, IntPtr dwNewLong);
///
///
///
public const int GWL_WNDPROC = (-4);
- ///
- /// 结束进程
- ///
- ///
- ///
- ///
- [DllImport("kernel32")]
- public static extern long TerminateProcess(int handle, int exitCode);
- ///
- /// 发送消息
- ///
- ///
- ///
- ///
- ///
- ///
- [DllImport("User32.dll", EntryPoint = "SendMessage")]
- private static extern int SendMessage(IntPtr hwnd, int msg, int wParam, ref COPYDATASTRUCT IParam);
- ///
- /// 发送消息
- ///
- ///
- ///
- ///
- ///
- [DllImport("user32.dll")]
- public static extern void PostMessage(IntPtr hWnd, int msg, int wParam, ref COPYDATASTRUCT IParam);
- ///
- /// 获取窗口位置和大小
- ///
- ///
- ///
- ///
- [DllImport("user32.dll")]
- [return: MarshalAs(UnmanagedType.Bool)]
- public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
- ///
- /// 矩形
- ///
- [StructLayout(LayoutKind.Sequential)]
- public struct RECT
- {
- ///
- /// 最左坐标
- ///
- public int Left;
- ///
- /// 最上坐标
- ///
- public int Top;
- ///
- /// 最右坐标
- ///
- public int Right;
- ///
- /// 最下坐标
- ///
- public int Bottom;
- }
+
///
/// WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。
///
@@ -218,25 +32,7 @@ namespace MyDb
/// 用户通道ID
///
public const int User_chanel_id = 1001;
- ///
- ///
- ///
- public struct COPYDATASTRUCT
- {
- ///
- ///
- ///
- public IntPtr dwData;
- ///
- ///
- ///
- public int cData;
- ///
- ///
- ///
- [MarshalAs(UnmanagedType.LPStr)]
- public string lpData;
- }
+
///
/// 获取消息
///
@@ -267,7 +63,7 @@ namespace MyDb
cdata.dwData = from_handle;
cdata.lpData = str;
cdata.cData = len + 1;
- return SendMessage(to_handle, WM_COPYDATA, wParam, ref cdata);
+ return User32.SendMessage(to_handle, WM_COPYDATA, wParam, ref cdata);
}
///
/// 设置父窗口
@@ -278,8 +74,8 @@ namespace MyDb
///
public static bool SetParentWin(IntPtr sub_form, IntPtr parent_form,Size size)
{
- SetParent(sub_form, parent_form);
- MoveWindow(sub_form, 0, 0, size.Width, size.Height, false);
+ User32.SetParent(sub_form, parent_form);
+ User32.MoveWindow(sub_form, 0, 0, size.Width, size.Height, false);
return true;
}
diff --git a/Source/MyDb/SysFuns/SuperForm.cs b/Source/MyDb/SysFuns/SuperForm.cs
index 2c96805..d8ebe7a 100644
--- a/Source/MyDb/SysFuns/SuperForm.cs
+++ b/Source/MyDb/SysFuns/SuperForm.cs
@@ -5,6 +5,7 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
+using WinAPI;
namespace ryCommon
{
@@ -31,7 +32,7 @@ namespace ryCommon
///
~SuperForm()
{
- MyDb.RyWin32.SetWindowLong(handle, MyDb.RyWin32.GWL_WNDPROC, oldWndFunc);
+ User32.SetWindowLong(handle, MyDb.RyWin32.GWL_WNDPROC, oldWndFunc);
}
private bool isMouseDown = false;
private Point FormLocation; //form的location
@@ -104,7 +105,7 @@ namespace ryCommon
///
protected virtual void WndProc(ref Message m)
{
- m.Result = MyDb.RyWin32.CallWindowProc(oldWndFunc, m.HWnd, m.Msg, m.WParam, m.LParam);
+ m.Result = User32.CallWindowProc(oldWndFunc, m.HWnd, m.Msg, m.WParam, m.LParam);
switch (m.Msg)
{
case 0x0084:
diff --git a/Source/MyDb/WinAPI/Kernel32.cs b/Source/MyDb/WinAPI/Kernel32.cs
new file mode 100644
index 0000000..9e805bb
--- /dev/null
+++ b/Source/MyDb/WinAPI/Kernel32.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace WinAPI
+{
+ ///
+ ///
+ ///
+ public static class Kernel32
+ {
+ ///
+ /// 结束进程
+ ///
+ ///
+ ///
+ ///
+ [DllImport("kernel32")]
+ public static extern long TerminateProcess(int handle, int exitCode);
+ }
+}
diff --git a/Source/MyDb/WinAPI/Structs.cs b/Source/MyDb/WinAPI/Structs.cs
index 5b0ba23..5979fb0 100644
--- a/Source/MyDb/WinAPI/Structs.cs
+++ b/Source/MyDb/WinAPI/Structs.cs
@@ -9,7 +9,7 @@ namespace WinAPI
///
///
///
- public class Struct
+ public static class Struct
{
#region Struct
///
@@ -104,5 +104,24 @@ namespace WinAPI
///
SWP_ASYNCWINDOWPOS = 0x4000
};
+ ///
+ ///
+ ///
+ public struct COPYDATASTRUCT
+ {
+ ///
+ ///
+ ///
+ public IntPtr dwData;
+ ///
+ ///
+ ///
+ public int cData;
+ ///
+ ///
+ ///
+ [MarshalAs(UnmanagedType.LPStr)]
+ public string lpData;
+ }
}
}
diff --git a/Source/MyDb/WinAPI/User32.cs b/Source/MyDb/WinAPI/User32.cs
index 87ca47a..07f5cd0 100644
--- a/Source/MyDb/WinAPI/User32.cs
+++ b/Source/MyDb/WinAPI/User32.cs
@@ -1,20 +1,18 @@
-using System;
-using System.Text;
-using System.Drawing;
-using System.Runtime.InteropServices;
+using System;
+using System.Text;
+using System.Drawing;
+using System.Runtime.InteropServices;
using static WinAPI.Struct;
using System.Windows.Forms;
-namespace Win32API
-{
+namespace WinAPI
+{
///
///
- ///
- public partial class User32
+ ///
+ public partial class User32
{
-
-
- #region UnmanagedMethods
+ #region UnmanagedMethods
///
/// 模拟鼠标点击
///
@@ -23,7 +21,7 @@ namespace Win32API
///
///
///
- ///
+ ///
[DllImport("user32")]
public static extern int mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
///
@@ -34,16 +32,16 @@ namespace Win32API
///
///
[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
- public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
+ public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
///
///
///
///
- ///
+ ///
[DllImport("User32.dll", CharSet = CharSet.Auto)]
- public static extern IntPtr GetWindowDC(IntPtr hWnd);
+ public static extern IntPtr GetWindowDC(IntPtr hWnd);
///
- ///
+ /// 移动窗口
///
///
///
@@ -51,25 +49,128 @@ namespace Win32API
///
///
///
- ///
+ ///
[DllImport("User32.dll", CharSet = CharSet.Auto)]
- public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint);
+ public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint);
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("User32.dll")]
+ public extern static IntPtr CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam);
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("User32.dll")]
+ public static extern IntPtr SetWindowLong(IntPtr hwnd, int nIndex, IntPtr dwNewLong);
+
///
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern IntPtr SetParent(IntPtr hwndChild, IntPtr hwndParent);
-
- ///
- /// The GetParent function retrieves a handle to the specified window's parent or owner.
- ///
- /// Handle to the window whose parent window handle is to be retrieved.
- /// If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL.
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern IntPtr GetParent(IntPtr hwnd);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern IntPtr SetParent(IntPtr hwndChild, IntPtr hwndParent);
+
+ ///
+ /// The GetParent function retrieves a handle to the specified window's parent or owner.
+ ///
+ /// Handle to the window whose parent window handle is to be retrieved.
+ /// If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL.
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern IntPtr GetParent(IntPtr hwnd);
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("USER32.DLL")]
+ public static extern int GetSystemMenu(IntPtr hwnd, int bRevert);
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("USER32.DLL")]
+ public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("user32.dll")]
+ public static extern bool SetForegroundWindow(IntPtr hWnd);
+ ///
+ /// 获取当前前台窗口句柄
+ ///
+ ///
+ [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
+ public static extern IntPtr GetForegroundWindow();
+ ///
+ /// 获得当前活动窗体
+ ///
+ ///
+ [DllImport("user32.dll")]
+ public static extern IntPtr GetActiveWindow();//获得当前活动窗体
+ ///
+ /// 设置活动窗体
+ ///
+ ///
+ ///
+ [DllImport("user32.dll")]
+ public static extern IntPtr SetActiveWindow(IntPtr hwnd);//设置活动窗体
+ ///
+ /// 获取类名
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("user32", EntryPoint = "GetClassName", SetLastError = false,
+ CharSet = CharSet.Auto, ExactSpelling = false,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int GetClassName(int hWnd, StringBuilder lpClassName, int nMaxCount);
+ ///
+ /// 获取当前线程对应的进程ID
+ ///
+ ///
+ ///
+ ///
+ [DllImport("User32.dll", CharSet = CharSet.Auto)]
+ public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
+ ///
+ /// 判断指定句柄是否是一个窗口
+ ///
+ ///
+ ///
+ [DllImport("user32.dll", EntryPoint = "IsWindow")]
+ public static extern bool IsWindow(IntPtr hWnd);
+ ///
+ /// 获取窗口标题
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("user32", SetLastError = true)]
+ public static extern int GetWindowText(
+ int hWnd,//窗口句柄
+ StringBuilder lpString,//标题
+ int nMaxCount //最大值
+ );
///
///
///
@@ -77,13 +178,13 @@ namespace Win32API
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern int SendMessage(
- IntPtr hwnd,
- int wMsg,
- int wParam,
- int lParam);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern int SendMessage(
+ IntPtr hwnd,
+ int wMsg,
+ int wParam,
+ int lParam);
///
///
///
@@ -91,12 +192,12 @@ namespace Win32API
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern int SendMessage(
- IntPtr hwnd,
- int wMsg,
- IntPtr wParam,
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern int SendMessage(
+ IntPtr hwnd,
+ int wMsg,
+ IntPtr wParam,
IntPtr lParam);
///
///
@@ -107,118 +208,144 @@ namespace Win32API
///
///
[DllImport("user32.dll", SetLastError = true)]
- public static extern bool SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
+ public static extern bool SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
+ ///
+ /// 发送消息
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("User32.dll", EntryPoint = "SendMessage")]
+ public static extern int SendMessage(IntPtr hwnd, int msg, int wParam, ref COPYDATASTRUCT IParam);
+ ///
+ /// 发送消息
+ ///
+ ///
+ ///
+ ///
+ ///
+ [DllImport("user32.dll")]
+ public static extern void PostMessage(IntPtr hWnd, int msg, int wParam, ref COPYDATASTRUCT IParam);
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern IntPtr LoadCursorFromFile(string filename);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern IntPtr LoadCursorFromFile(string filename);
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern bool IsWindowVisible(IntPtr hwnd);
-
- ///
- /// The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window.
- ///
- /// Handle to the parent window whose child windows are to be searched.
- /// Handle to a child window.
- /// Specifies class name.
- /// Pointer to a null-terminated string that specifies the window name (the window's title).
- /// If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL.
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern IntPtr FindWindowEx(
- IntPtr hwndParent,
- IntPtr hwndChildAfter,
- [MarshalAs(UnmanagedType.LPTStr)]
- string lpszClass,
- [MarshalAs(UnmanagedType.LPTStr)]
- string lpszWindow);
-
- ///
- /// The InvalidateRect function adds a rectangle to the specified window's update region.
- ///
- /// Handle to window.
- /// Rectangle coordinates.
- /// Erase state.
- /// If the function succeeds, the return value is true.If the function fails, the return value is false.
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern bool InvalidateRect(
- IntPtr hwnd,
- ref Rectangle rect,
- bool bErase);
-
- ///
- /// The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
- ///
- /// Handle to window.
- /// Validation rectangle coordinates.
- /// If the function succeeds, the return value is true.If the function fails, the return value is false.
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern bool ValidateRect(
- IntPtr hwnd,
- ref Rectangle rect);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern bool IsWindowVisible(IntPtr hwnd);
+ ///
+ /// 查找窗口
+ ///
+ ///
+ ///
+ ///
+ [DllImport("User32.dll", EntryPoint = "FindWindow")]
+ public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
+ ///
+ /// The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window.
+ ///
+ /// Handle to the parent window whose child windows are to be searched.
+ /// Handle to a child window.
+ /// Specifies class name.
+ /// Pointer to a null-terminated string that specifies the window name (the window's title).
+ /// If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL.
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern IntPtr FindWindowEx(
+ IntPtr hwndParent,
+ IntPtr hwndChildAfter,
+ [MarshalAs(UnmanagedType.LPTStr)]
+ string lpszClass,
+ [MarshalAs(UnmanagedType.LPTStr)]
+ string lpszWindow);
+
+ ///
+ /// The InvalidateRect function adds a rectangle to the specified window's update region.
+ ///
+ /// Handle to window.
+ /// Rectangle coordinates.
+ /// Erase state.
+ /// If the function succeeds, the return value is true.If the function fails, the return value is false.
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern bool InvalidateRect(
+ IntPtr hwnd,
+ ref Rectangle rect,
+ bool bErase);
+
+ ///
+ /// The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
+ ///
+ /// Handle to window.
+ /// Validation rectangle coordinates.
+ /// If the function succeeds, the return value is true.If the function fails, the return value is false.
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern bool ValidateRect(
+ IntPtr hwnd,
+ ref Rectangle rect);
///
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern int GetWindowLong(
- IntPtr hWnd,
- int dwStyle);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern int GetWindowLong(
+ IntPtr hWnd,
+ int dwStyle);
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern IntPtr GetDC(
- IntPtr hwnd);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern IntPtr GetDC(
+ IntPtr hwnd);
///
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern int ReleaseDC(
- IntPtr hwnd,
- IntPtr hdc);
-
- //[DllImport("user32", SetLastError = false)]
- //internal static extern IntPtr GetDesktopWindow();
-
- //[DllImport("user32", CharSet = CharSet.Auto)]
- //internal static extern int GetScrollPos(
- // IntPtr hwnd,
- // int nBar);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern int ReleaseDC(
+ IntPtr hwnd,
+ IntPtr hdc);
+
+ //[DllImport("user32", SetLastError = false)]
+ //internal static extern IntPtr GetDesktopWindow();
+
+ //[DllImport("user32", CharSet = CharSet.Auto)]
+ //internal static extern int GetScrollPos(
+ // IntPtr hwnd,
+ // int nBar);
///
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern int GetClientRect(
- IntPtr hwnd,
- [In, Out] ref Rectangle rect);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern int GetClientRect(
+ IntPtr hwnd,
+ [In, Out] ref Rectangle rect);
///
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern bool GetWindowRect(
- IntPtr hWnd,
- [In, Out] ref Rectangle rect);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern bool GetWindowRect(
+ IntPtr hWnd,
+ out Rectangle rect);
///
///
///
@@ -231,44 +358,44 @@ namespace Win32API
///
///
///
- ///
- [DllImport("user32", ExactSpelling = true, SetLastError = true)]
- public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
+ ///
+ [DllImport("user32", ExactSpelling = true, SetLastError = true)]
+ public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
///
///
///
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern uint SetWindowLong(
- IntPtr hWnd,
- int nIndex,
- int dwNewLong);
-
- ///
- /// Changes the size, position, and Z order of a child, pop-up, or top-level window.
- /// These windows are ordered according to their appearance on the screen.
- /// The topmost window receives the highest rank and is the first window in the Z order.
- ///
- /// A handle to the window.
- /// A handle to the window to precede the positioned window in the Z order. This parameter must be a window handle or one of the following values.
- /// Specifies the new position of the left side of the window, in client coordinates.
- /// Specifies the new position of the top of the window, in client coordinates.
- /// Specifies the new width of the window, in pixels.
- /// Specifies the new height of the window, in pixels.
- /// Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.
- /// If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern int SetWindowPos(
- IntPtr hWnd,
- IntPtr hWndAfter,
- int X,
- int Y,
- int Width,
- int Height,
- FlagsSetWindowPos flags);
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern uint SetWindowLong(
+ IntPtr hWnd,
+ int nIndex,
+ int dwNewLong);
+
+ ///
+ /// Changes the size, position, and Z order of a child, pop-up, or top-level window.
+ /// These windows are ordered according to their appearance on the screen.
+ /// The topmost window receives the highest rank and is the first window in the Z order.
+ ///
+ /// A handle to the window.
+ /// A handle to the window to precede the positioned window in the Z order. This parameter must be a window handle or one of the following values.
+ /// Specifies the new position of the left side of the window, in client coordinates.
+ /// Specifies the new position of the top of the window, in client coordinates.
+ /// Specifies the new width of the window, in pixels.
+ /// Specifies the new height of the window, in pixels.
+ /// Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.
+ /// If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern int SetWindowPos(
+ IntPtr hWnd,
+ IntPtr hWndAfter,
+ int X,
+ int Y,
+ int Width,
+ int Height,
+ FlagsSetWindowPos flags);
///
///
///
@@ -279,11 +406,11 @@ namespace Win32API
///
///
///
- ///
- [DllImport("user32", CharSet = CharSet.Auto)]
- public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
- int Y, int cx, int cy, uint uFlags);
-
- #endregion
- }
+ ///
+ [DllImport("user32", CharSet = CharSet.Auto)]
+ public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
+ int Y, int cx, int cy, uint uFlags);
+
+ #endregion
+ }
}
\ No newline at end of file
diff --git a/Source/MyDb/bin/x86/Debug/MyDb.dll b/Source/MyDb/bin/x86/Debug/MyDb.dll
index 11202e9..dfdc566 100644
Binary files a/Source/MyDb/bin/x86/Debug/MyDb.dll and b/Source/MyDb/bin/x86/Debug/MyDb.dll differ
diff --git a/Source/MyDb/bin/x86/Release/MyDb.dll b/Source/MyDb/bin/x86/Release/MyDb.dll
index 06bbe29..0d2b348 100644
Binary files a/Source/MyDb/bin/x86/Release/MyDb.dll and b/Source/MyDb/bin/x86/Release/MyDb.dll differ
diff --git a/Source/ryControls/Gdu.WinFormUI/Common/ButtonColorTable.cs b/Source/ryControls/Gdu.WinFormUI/Common/ButtonColorTable.cs
new file mode 100644
index 0000000..c04512d
--- /dev/null
+++ b/Source/ryControls/Gdu.WinFormUI/Common/ButtonColorTable.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Drawing;
+
+using MGdu.WinFormUI.MyGraphics;
+//忽略没有注释警告
+#pragma warning disable 1591
+namespace MGdu.WinFormUI
+{
+ public class ButtonColorTable
+ {
+ public Color BorderColorNormal { get; set; }
+ public Color BorderColorHover { get; set; }
+ public Color BorderColorPressed { get; set; }
+ public Color BorderColorDisabled { get; set; }
+
+ public Color BackColorNormal { get; set; }
+ public Color BackColorHover { get; set; }
+ public Color BackColorPressed { get; set; }
+ public Color BackColorDisabled { get; set; }
+
+ public Color ForeColorNormal { get; set; }
+ public Color ForeColorHover { get; set; }
+ public Color ForeColorPressed { get; set; }
+ public Color ForeColorDisabled { get; set; }
+
+ public ButtonColorTable()
+ {
+
+ }
+
+ public static ButtonColorTable DefaultTable()
+ {
+ ButtonColorTable table = new ButtonColorTable();
+
+ table.ForeColorNormal = table.ForeColorHover = table.ForeColorPressed = Color.Black;
+
+ table.BackColorNormal = Color.LightPink;
+ table.BackColorHover = Color.HotPink;
+ table.BackColorPressed = Color.DeepPink;
+
+ return table;
+ }
+
+ public static ButtonColorTable GetDefaultCloseBtnColor()
+ {
+ ButtonColorTable table = new ButtonColorTable();
+
+ table.ForeColorNormal = Color.Black;
+ table.ForeColorHover = table.ForeColorPressed = Color.White;
+ table.BackColorNormal = Color.Transparent;
+ table.BackColorHover = Color.FromArgb(241,157,147);
+ table.BackColorPressed = Color.FromArgb(217,98,98);
+
+ return table;
+ }
+
+ public static ButtonColorTable GetColorTableVs2013Theme()
+ {
+ ButtonColorTable table = new ButtonColorTable();
+
+ table.ForeColorNormal = table.ForeColorHover = table.ForeColorPressed = Color.Black;
+ table.BackColorHover = Color.FromArgb(255, 252, 244);
+ table.BackColorPressed = Color.FromArgb(255, 232, 166);
+ table.BorderColorHover = table.BorderColorPressed = Color.FromArgb(229, 195, 101);
+
+ return table;
+ }
+
+ public static ButtonColorTable GetDevWhiteThemeMinMaxBtnColor()
+ {
+ ButtonColorTable maxTable = new ButtonColorTable();
+ maxTable.ForeColorNormal = Color.Black;
+ maxTable.ForeColorHover = maxTable.ForeColorPressed = Color.White;
+ maxTable.BackColorNormal = Color.Transparent;
+ maxTable.BackColorHover = Color.FromArgb(54, 101, 179);
+ maxTable.BackColorPressed = Color.FromArgb(44, 88, 161);
+ return maxTable;
+ }
+
+ public static ButtonColorTable GetDevWhiteThemeCloseBtnColor()
+ {
+ ButtonColorTable closeTable = new ButtonColorTable();
+ closeTable.ForeColorNormal = closeTable.ForeColorHover = closeTable.ForeColorPressed
+ = ColorHelper.GetDarkerColor(Color.White, 5);
+ closeTable.BackColorNormal = Color.FromArgb(199, 80, 80);
+ closeTable.BackColorHover = Color.FromArgb(224, 67, 67);
+ closeTable.BackColorPressed = Color.FromArgb(153, 61, 61);
+ return closeTable;
+ }
+ }
+}
diff --git a/Source/ryControls/Gdu.WinFormUI/Common/Common.cs b/Source/ryControls/Gdu.WinFormUI/Common/Common.cs
new file mode 100644
index 0000000..e681e7c
--- /dev/null
+++ b/Source/ryControls/Gdu.WinFormUI/Common/Common.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+//忽略没有注释警告
+#pragma warning disable 1591
+namespace MGdu.WinFormUI
+{
+ public delegate GraphicsPath ButtonForePathGetter(Rectangle rect);
+ public enum GMButtonState
+ {
+ Normal,
+ Hover,
+ Pressed,
+ PressLeave,
+ }
+
+ public enum ButtonBorderType
+ {
+ Rectangle,
+ Ellipse,
+ }
+
+ public enum MouseOperationType
+ {
+ Move,
+ Down,
+ Up,
+ Hover,
+ Leave,
+ }
+
+ public enum ForePathRatoteDirection
+ {
+ Down,
+ Left,
+ Up,
+ Right,
+ }
+
+ public enum ForePathRenderMode
+ {
+ Draw,
+ Fill,
+ }
+}
diff --git a/Source/ryControls/Gdu.WinFormUI/Forms/ControlBoxManager.cs b/Source/ryControls/Gdu.WinFormUI/Forms/ControlBoxManager.cs
new file mode 100644
index 0000000..1321f0a
--- /dev/null
+++ b/Source/ryControls/Gdu.WinFormUI/Forms/ControlBoxManager.cs
@@ -0,0 +1,195 @@
+using System;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Windows.Forms;
+
+using MGdu.WinFormUI.MyGraphics;
+//忽略没有注释警告
+#pragma warning disable 1591
+namespace MGdu.WinFormUI
+{
+ public class ControlBoxManager
+ {
+ private GMForm _owner;
+
+ private WLButton closeBtn;
+ private WLButton maxBtn;
+ private WLButton resBtn;
+ private WLButton minBtn;
+
+ #region event handler
+
+ private void CloseBtnClick(object sender, EventArgs e)
+ {
+ _owner.Close();
+ }
+
+ private void MaxBtnClick(object sender, EventArgs e)
+ {
+ _owner.WindowState = FormWindowState.Maximized;
+ }
+
+ private void ResBtnClick(object sender, EventArgs e)
+ {
+ _owner.WindowState = FormWindowState.Normal;
+ }
+
+ private void MinBtnClick(object sender, EventArgs e)
+ {
+ _owner.WindowState = FormWindowState.Minimized;
+ }
+
+ #endregion
+
+ private void SetControlBoxColor()
+ {
+
+ closeBtn.ColorTable = _owner.XTheme.CloseBoxColor;
+ closeBtn.BackImageNormal = _owner.XTheme.CloseBoxBackImageNormal;
+ closeBtn.BackImageHover = _owner.XTheme.CloseBoxBackImageHover;
+ closeBtn.BackImagePressed = _owner.XTheme.CloseBoxBackImagePressed;
+
+ // max res box
+ if (_owner.MaximizeBox)
+ {
+ maxBtn.ColorTable = _owner.XTheme.MaxBoxColor;
+ maxBtn.BackImageNormal = _owner.XTheme.MaxBoxBackImageNormal;
+ maxBtn.BackImageHover = _owner.XTheme.MaxBoxBackImageHover;
+ maxBtn.BackImagePressed = _owner.XTheme.MaxBoxBackImagePressed;
+
+ resBtn.ColorTable = _owner.XTheme.MaxBoxColor;
+ resBtn.BackImageNormal = _owner.XTheme.ResBoxBackImageNormal;
+ resBtn.BackImageHover = _owner.XTheme.ResBoxBackImageHover;
+ resBtn.BackImagePressed = _owner.XTheme.ResBoxBackImagePressed;
+ }
+
+ // min box
+ if (_owner.MinimizeBox)
+ {
+ minBtn.ColorTable = _owner.XTheme.MinBoxColor;
+ minBtn.BackImageNormal = _owner.XTheme.MinBoxBackImageNormal;
+ minBtn.BackImageHover = _owner.XTheme.MinBoxBackImageHover;
+ minBtn.BackImagePressed = _owner.XTheme.MinBoxBackImagePressed;
+ }
+
+ }
+
+ private void BtnIni()
+ {
+ // close box
+ closeBtn = new WLButton(_owner);
+ closeBtn.Visible = true;
+ closeBtn.Bounds = _owner.CloseBoxRect;
+
+ closeBtn.Click += new EventHandler(CloseBtnClick);
+ closeBtn.ForePathGetter = new ButtonForePathGetter(
+ GraphicsPathHelper.CreateCloseFlagPath);
+
+ // max res box
+ if (_owner.MaximizeBox)
+ {
+ maxBtn = new WLButton(_owner);
+ resBtn = new WLButton(_owner);
+
+ if (_owner.WindowState == FormWindowState.Normal)
+ {
+ maxBtn.Visible = true;
+ resBtn.Visible = false;
+ }
+ else
+ {
+ maxBtn.Visible = false;
+ resBtn.Visible = true;
+ }
+
+ maxBtn.Bounds = _owner.MaxBoxRect;
+ resBtn.Bounds = _owner.MaxBoxRect;
+
+ maxBtn.Click += new EventHandler(MaxBtnClick);
+ maxBtn.ForePathGetter = new ButtonForePathGetter(
+ GraphicsPathHelper.CreateMaximizeFlagPath);
+
+ resBtn.Click += new EventHandler(ResBtnClick);
+ resBtn.ForePathGetter = new ButtonForePathGetter(
+ GraphicsPathHelper.CreateRestoreFlagPath);
+ }
+
+ // min box
+ if (_owner.MinimizeBox)
+ {
+ minBtn = new WLButton(_owner);
+
+ minBtn.Visible = true;
+ minBtn.Bounds = _owner.MinBoxRect;
+
+ minBtn.Click += new EventHandler(MinBtnClick);
+ minBtn.ForePathGetter = new ButtonForePathGetter(
+ GraphicsPathHelper.CreateMinimizeFlagPath);
+ }
+
+ SetControlBoxColor();
+ }
+
+ public ControlBoxManager(GMForm owner)
+ {
+ _owner = owner;
+ BtnIni();
+ }
+
+ public void FormResize()
+ {
+ if(maxBtn != null)
+ {
+ if (_owner.WindowState == FormWindowState.Normal)
+ {
+ maxBtn.Visible = true;
+ resBtn.Visible = false;
+ resBtn.State = GMButtonState.Normal;
+ }
+ else
+ {
+ resBtn.Visible = true;
+ maxBtn.Visible = false;
+ maxBtn.State = GMButtonState.Normal;
+ }
+ resBtn.Bounds = maxBtn.Bounds = _owner.MaxBoxRect;
+ }
+ if (minBtn != null)
+ minBtn.Bounds = _owner.MinBoxRect;
+ closeBtn.Bounds = _owner.CloseBoxRect;
+ }
+
+ public void MouseOperation(Point location, MouseOperationType type)
+ {
+ closeBtn.MouseOperation(location, type);
+ if (maxBtn != null && maxBtn.Visible)
+ maxBtn.MouseOperation(location, type);
+ if(resBtn!=null && resBtn.Visible)
+ resBtn.MouseOperation(location, type);
+ if(minBtn!=null)
+ minBtn.MouseOperation(location, type);
+ }
+
+ public void DrawBoxes(Graphics g)
+ {
+ if (_owner.ControlBox)
+ {
+ closeBtn.DrawButton(g);
+ if (_owner.MinimizeBox && minBtn != null)
+ minBtn.DrawButton(g);
+ if (_owner.MaximizeBox)
+ {
+ if (maxBtn != null & maxBtn.Visible)
+ maxBtn.DrawButton(g);
+ if (resBtn != null && resBtn.Visible)
+ resBtn.DrawButton(g);
+ }
+ }
+ }
+
+ public void ResetBoxColor()
+ {
+ SetControlBoxColor();
+ }
+ }
+}
diff --git a/Source/ryControls/Gdu.WinFormUI/Forms/GMForm.Designer.cs b/Source/ryControls/Gdu.WinFormUI/Forms/GMForm.Designer.cs
new file mode 100644
index 0000000..89f0eef
--- /dev/null
+++ b/Source/ryControls/Gdu.WinFormUI/Forms/GMForm.Designer.cs
@@ -0,0 +1,38 @@
+namespace MGdu.WinFormUI
+{
+ partial class GMForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Text = "GMForm";
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/Source/ryControls/Gdu.WinFormUI/Forms/GMForm.cs b/Source/ryControls/Gdu.WinFormUI/Forms/GMForm.cs
new file mode 100644
index 0000000..fa638f9
--- /dev/null
+++ b/Source/ryControls/Gdu.WinFormUI/Forms/GMForm.cs
@@ -0,0 +1,1679 @@
+/*
+ * 本代码受中华人民共和国著作权法保护,作者仅授权下载代码之人在学习和交流范围内
+ * 自由使用与修改代码;欲将代码用于商业用途的,请先与作者联系。
+ * 使用本代码请保留此处信息。作者联系方式:ping3108@163.com, 欢迎进行技术交流
+ */
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Windows.Forms;
+using System.Runtime.InteropServices;
+
+using MGdu.WinFormUI;
+using MGdu.WinFormUI.MyGraphics;
+using System.Security.Permissions;
+
+namespace MGdu.WinFormUI
+{
+ ///
+ /// a form that supports custom theme
+ ///
+ [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
+ [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+ public partial class GMForm : Form
+ {
+
+ #region private variable
+
+ ControlBoxManager controlBoxManager;
+ GMShadow _shawdowForm;
+ Form _lastClosedMdiChild;
+ List