设置控件锚点
<火山程序 类型 = "通常" 版本 = 1 />类 控件锚点 <公开>
{
变量 全被锚控件数组 <静态 类型 = 被锚控件数组类>
变量 全父窗口 <静态 类型 = 父窗口数组类>
变量 全子控件句柄数组 <静态 类型 = 整数数组类>
常量 GWL_WNDPROC <公开 值 = -4>
常量 WM_SIZE <公开 类型 = 整数 值 = 5>
方法 设置控件锚点 <公开 静态 注释 = "指定控件的锚点以适应窗口的大小改变">
参数 控件句柄 <类型 = 整数 注释 = "控件的句柄">
参数 锚住左边 <类型 = 逻辑型 注释 = "是否锚住控件左边">
参数 锚住顶边 <类型 = 逻辑型 注释 = "是否锚住控件顶边">
参数 锚住右边 <类型 = 逻辑型 注释 = "是否锚住控件右边">
参数 锚住下边 <类型 = 逻辑型 注释 = "是否锚住控件下边">
{
变量 父窗口句柄 <类型 = 整数>
变量 父窗口过程 <类型 = 整数>
变量 某父窗口 <类型 = 父窗口>
变量 某被锚控件 <类型 = 被锚控件>
变量 i <类型 = 整数>
i = 取被锚控件索引 (控件句柄)
如果 (i == -1)
{
父窗口句柄 = API.GetParent (控件句柄)
父窗口过程 = API.GetWindowLongA (父窗口句柄, GWL_WNDPROC)
某被锚控件.父窗口句柄 = 父窗口句柄
某被锚控件.窗口句柄 = 控件句柄
某被锚控件.左边距离 = 取窗口左边 (控件句柄) - 取窗口左边 (父窗口句柄) - 取窗口边界宽度 (父窗口句柄)
某被锚控件.上边距离 = 取窗口上边 (控件句柄) - 取窗口上边 (父窗口句柄) - 取窗口标题栏高度 (父窗口句柄)
某被锚控件.右边距离 = 取窗口右边 (父窗口句柄) - 取窗口右边 (控件句柄) - 取窗口边界宽度 (父窗口句柄)
某被锚控件.下边距离 = 取窗口下边 (父窗口句柄) - 取窗口下边 (控件句柄) - 取窗口边界宽度 (父窗口句柄)
某被锚控件.锚住左边 = 锚住左边
某被锚控件.锚住顶边 = 锚住顶边
某被锚控件.锚住右边 = 锚住右边
某被锚控件.锚住下边 = 锚住下边
某被锚控件.宽度 = 取窗口宽度 (控件句柄)
某被锚控件.高度 = 取窗口高度 (控件句柄)
全被锚控件数组.加入成员 (某被锚控件)
}
否则
{
父窗口句柄 = API.GetParent (控件句柄)
父窗口过程 = API.GetWindowLongA (父窗口句柄, GWL_WNDPROC)
全被锚控件数组.取成员 (i).父窗口句柄 = 父窗口句柄
全被锚控件数组.取成员 (i).窗口句柄 = 控件句柄
全被锚控件数组.取成员 (i).左边距离 = 取窗口左边 (控件句柄) - 取窗口左边 (父窗口句柄) - 取窗口边界宽度 (父窗口句柄)
全被锚控件数组.取成员 (i).上边距离 = 取窗口上边 (控件句柄) - 取窗口上边 (父窗口句柄) - 取窗口标题栏高度 (父窗口句柄)
全被锚控件数组.取成员 (i).右边距离 = 取窗口右边 (父窗口句柄) - 取窗口右边 (控件句柄) - 取窗口边界宽度 (父窗口句柄)
全被锚控件数组.取成员 (i).下边距离 = 取窗口下边 (父窗口句柄) - 取窗口下边 (控件句柄) - 取窗口边界宽度 (父窗口句柄)
全被锚控件数组.取成员 (i).锚住左边 = 锚住左边
全被锚控件数组.取成员 (i).锚住顶边 = 锚住顶边
全被锚控件数组.取成员 (i).锚住右边 = 锚住右边
全被锚控件数组.取成员 (i).锚住下边 = 锚住下边
全被锚控件数组.取成员 (i).宽度 = 取窗口宽度 (控件句柄)
全被锚控件数组.取成员 (i).高度 = 取窗口高度 (控件句柄)
}
如果 (取父窗口索引 (父窗口句柄) == -1)
{
某父窗口.窗口句柄 = 父窗口句柄
某父窗口.旧窗口过程 = 父窗口过程
某父窗口.控制模式_锚点 = 真
API.SetWindowLongA (父窗口句柄, GWL_WNDPROC, 取静态方法地址 (新窗口过程))
全父窗口.加入成员 (某父窗口)
}
}
方法 水平均分子控件 <公开 静态 注释 = "将该控件的第一层子控件水平均分">
参数 父窗口句柄 <类型 = 整数 注释 = "要水平其子控件的父窗口句柄">
参数 子控件高度 <类型 = 整数 注释 = "要固定高度,则设定一个值;要动态自适应,则设为0">
参数 控件间距 <类型 = 整数 @默认值 = 0>
{
变量 某父窗口 <类型 = 父窗口>
变量 父窗口过程 <类型 = 整数>
如果 (控件间距 == 0)
{
控件间距 = 5
}
如果 (取父窗口索引 (父窗口句柄) == -1)
{
父窗口过程 = API.GetWindowLongA (父窗口句柄, GWL_WNDPROC)
某父窗口.窗口句柄 = 父窗口句柄
某父窗口.旧窗口过程 = 父窗口过程
某父窗口.控制模式_水平均分 = 真
某父窗口.间距 = 控件间距
某父窗口.子控件高度 = 子控件高度
API.SetWindowLongA (父窗口句柄, GWL_WNDPROC, 取静态方法地址 (新窗口过程))
全父窗口.加入成员 (某父窗口)
}
}
方法 垂直均分子控件 <公开 静态 注释 = "将该控件的第一层子控件垂直均分">
参数 父窗口句柄 <类型 = 整数 注释 = "要均分其子控件的父控件">
参数 子控件宽度 <类型 = 整数 注释 = "要固定宽度,则设定一个值;要动态自适应,则设为0">
参数 控件间距 <类型 = 整数 注释 = "默认为5,可以设置" @默认值 = 0>
{
变量 某父窗口 <类型 = 父窗口>
变量 父窗口过程 <类型 = 整数>
如果 (控件间距 == 0)
{
控件间距 = 5
}
如果 (取父窗口索引 (父窗口句柄) == -1)
{
父窗口过程 = API.GetWindowLongA (父窗口句柄, GWL_WNDPROC)
某父窗口.窗口句柄 = 父窗口句柄
某父窗口.旧窗口过程 = 父窗口过程
某父窗口.控制模式_垂直均分 = 真
某父窗口.间距 = 控件间距
某父窗口.子控件宽度 = 子控件宽度
API.SetWindowLongA (父窗口句柄, GWL_WNDPROC, 取静态方法地址 (新窗口过程))
全父窗口.加入成员 (某父窗口)
}
}
方法 新窗口过程 <静态 类型 = 整数>
参数 hwnd <类型 = 整数>
参数 uMsg <类型 = 整数>
参数 wParam <类型 = 整数>
参数 lParam <类型 = 整数>
{
变量 旧窗口过程 <类型 = 整数>
变量 某父窗口 <类型 = 父窗口>
变量 索引 <类型 = 整数>
变量 r <类型 = 整数>
变量 i <类型 = 整数>
变量 某被锚控件 <类型 = 被锚控件>
变量 矩形 <类型 = 矩形_>
变量 子控件句柄数组 <类型 = 整数数组类>
变量 子控件个数 <类型 = 整数>
变量 子控件宽度 <类型 = 整数>
变量 子控件高度 <类型 = 整数>
索引 = 取父窗口索引 (hwnd)
某父窗口 = 全父窗口.取成员 (索引)
旧窗口过程 = 某父窗口.旧窗口过程
如果 (uMsg == WM_SIZE)
{
如果 (某父窗口.控制模式_水平均分 == 真)
{
取窗口第一层子控件 (hwnd, 子控件句柄数组)
子控件个数 = 子控件句柄数组.取成员数 ()
子控件宽度 = (取窗口客户区宽度 (hwnd) - 某父窗口.间距 * (子控件个数 + 1)) / 子控件个数
如果 (某父窗口.子控件高度 != 0)
{
子控件高度 = 某父窗口.子控件高度
}
否则
{
子控件高度 = 取窗口客户区高度 (hwnd) - 某父窗口.间距 * 2
}
逆序数组 (子控件句柄数组)
循环 (, 子控件句柄数组.取成员数 (), i)
{
API.MoveWindow (子控件句柄数组.取成员 (i), 某父窗口.间距 * i + 子控件宽度 * (i - 1), 某父窗口.间距, 子控件宽度, 子控件高度, 真)
}
}
如果 (某父窗口.控制模式_垂直均分 == 真)
{
取窗口第一层子控件 (hwnd, 子控件句柄数组)
子控件个数 = 子控件句柄数组.取成员数 ()
子控件高度 = (取窗口客户区高度 (hwnd) - 某父窗口.间距 * (子控件个数 + 1)) / 子控件个数
如果 (某父窗口.子控件宽度 != 0)
{
子控件宽度 = 某父窗口.子控件宽度
}
否则
{
子控件宽度 = 取窗口客户区宽度 (hwnd) - 某父窗口.间距 * 2
}
逆序数组 (子控件句柄数组)
循环 (, 子控件句柄数组.取成员数 (), i)
{
API.MoveWindow (子控件句柄数组.取成员 (i), 某父窗口.间距, 某父窗口.间距 * i + 子控件高度 * (i - 1), 子控件宽度, 子控件高度, 真)
}
}
如果 (某父窗口.控制模式_锚点)
{
循环 (, 全被锚控件数组.取成员数 (), i)
{
某被锚控件 = 全被锚控件数组.取成员 (i)
如果 (某被锚控件.父窗口句柄 == hwnd)
{
如果 (某被锚控件.锚住左边)
{
如果 (某被锚控件.锚住右边)
{
某被锚控件.宽度 = 取窗口客户区宽度 (hwnd) - 某被锚控件.左边距离 - 某被锚控件.右边距离
}
}
否则
{
如果 (某被锚控件.锚住右边)
{
某被锚控件.左边距离 = 取窗口客户区宽度 (hwnd) - 某被锚控件.宽度 - 某被锚控件.右边距离
}
}
如果 (某被锚控件.锚住顶边)
{
如果 (某被锚控件.锚住下边)
{
某被锚控件.高度 = 取窗口客户区高度 (hwnd) - 某被锚控件.上边距离 - 某被锚控件.下边距离
}
}
否则
{
某被锚控件.上边距离 = 取窗口客户区高度 (hwnd) - 某被锚控件.高度 - 某被锚控件.下边距离
}
API.MoveWindow (某被锚控件.窗口句柄, 某被锚控件.左边距离, 某被锚控件.上边距离, 某被锚控件.宽度, 某被锚控件.高度, 真)
}
}
}
}
r = API.CallWindowProcA (旧窗口过程, hwnd, uMsg, wParam, lParam)
返回 (r)
}
方法 逆序数组 <静态 注释 = "将数组的元素颠倒次序">
参数 将要逆序的数组 <类型 = 整数数组类>
{
变量 i <类型 = 整数>
变量 临时数组 <类型 = 整数数组类>
变量 数组长度 <类型 = 整数>
数组长度 = 将要逆序的数组.取成员数 ()
// 复制数组 (临时数组, 将要逆序的数组)
临时数组.从数组复制 (将要逆序的数组)
循环 (, 数组长度, i)
{
将要逆序的数组.加入成员 (临时数组.取成员 (数组长度 - i + 1))
}
}
方法 取父窗口索引 <静态 类型 = 整数 注释 = "找不到返回-1" 折叠>
参数 参父窗口句柄 <类型 = 整数>
{
变量 i <类型 = 整数>
循环 (, 全父窗口.取成员数 (), i)
{
如果 (全父窗口.取成员 (i).窗口句柄 == 参父窗口句柄)
{
返回 (i)
}
}
返回 (-1)
}
方法 取窗口左边 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.取窗口矩形_ (参窗口句柄, 矩形)
返回 (矩形.左边)
}
方法 取窗口上边 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.取窗口矩形_ (参窗口句柄, 矩形)
返回 (矩形.顶边)
}
方法 取窗口右边 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.取窗口矩形_ (参窗口句柄, 矩形)
返回 (矩形.右边)
}
方法 取窗口下边 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.取窗口矩形_ (参窗口句柄, 矩形)
返回 (矩形.底边)
}
方法 取窗口宽度 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.取窗口矩形_ (参窗口句柄, 矩形)
返回 (矩形.右边 - 矩形.左边)
}
方法 取窗口高度 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.取窗口矩形_ (参窗口句柄, 矩形)
返回 (矩形.底边 - 矩形.顶边)
}
方法 取窗口客户区宽度 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.GetClientRect (参窗口句柄, 矩形)
返回 (矩形.右边 - 矩形.左边)
}
方法 取窗口客户区高度 <静态 类型 = 整数>
参数 参窗口句柄 <类型 = 整数>
{
变量 矩形 <类型 = 矩形类>
API.GetClientRect (参窗口句柄, 矩形)
返回 (矩形.底边 - 矩形.顶边)
}
方法 取窗口标题栏高度 <静态 类型 = 整数 折叠>
参数 参窗口句柄 <类型 = 整数>
{
返回 (取窗口高度 (参窗口句柄) - 取窗口客户区高度 (参窗口句柄) - 取窗口边界宽度 (参窗口句柄))
}
方法 取窗口边界宽度 <静态 类型 = 整数 折叠>
参数 参窗口句柄 <类型 = 整数>
{
返回 ((取窗口宽度 (参窗口句柄) - 取窗口客户区宽度 (参窗口句柄)) / 2)
}
方法 取窗口第一层子控件 <静态 注释 = "以|分隔的子控件句柄,返回整数数组">
参数 父窗口句柄 <类型 = 整数>
参数 接收返回的数组 <类型 = 整数数组类>
{
全子控件句柄数组.重置数组 (0, 假)
接收返回的数组.重置数组 (0, 假)
API.EnumChildWindows (父窗口句柄, 取静态方法地址 (枚举子窗口过程), 父窗口句柄)
接收返回的数组 = 全子控件句柄数组
接收返回的数组.从数组复制 (全子控件句柄数组)
全子控件句柄数组.重置数组 (0, 假)
}
方法 枚举子窗口过程 <静态 类型 = 逻辑型 注释 = "用来被EnumChildWindows回调的窗口过程">
参数 窗口句柄 <类型 = 整数>
参数 lParam <类型 = 整数 注释 = "应用程序传递的参数">
{
如果 (API.GetParent (窗口句柄) == lParam)
{
全子控件句柄数组.加入成员 (窗口句柄)
}
返回 (真)
}
方法 取被锚控件索引 <公开 静态 类型 = 整数 注释 = "返回控件在全局数组中的索引,找不到则返回-1" 折叠>
参数 参控件句柄 <类型 = 整数>
{
变量 i <类型 = 整数>
循环 (, 全子控件句柄数组.取成员数 (), i)
{
如果 (全被锚控件数组.取成员 (i).窗口句柄 == 参控件句柄)
{
返回 (i)
}
}
返回 (-1)
}
#
}
类 被锚控件数组类 <公开 基础类 = 对象数组模板类 @模板实现类 = "被锚控件">
类 父窗口数组类 <公开 基础类 = 对象数组模板类 @模板实现类 = "父窗口">
类 被锚控件 <公开 折叠>
{
变量 父窗口句柄 <公开 类型 = 整数>
变量 窗口句柄 <公开 类型 = 整数>
变量 左边距离 <公开 类型 = 整数>
变量 上边距离 <公开 类型 = 整数>
变量 右边距离 <公开 类型 = 整数>
变量 下边距离 <公开 类型 = 整数>
变量 宽度 <公开 类型 = 整数>
变量 高度 <公开 类型 = 整数>
变量 锚住左边 <公开 类型 = 逻辑型>
变量 锚住顶边 <公开 类型 = 逻辑型>
变量 锚住右边 <公开 类型 = 逻辑型>
变量 锚住下边 <公开 类型 = 逻辑型>
}
类 父窗口 <公开 折叠>
{
变量 窗口句柄 <公开 类型 = 整数>
变量 旧窗口过程 <公开 类型 = 整数>
变量 子控件高度 <公开 类型 = 整数>
变量 子控件宽度 <公开 类型 = 整数>
变量 间距 <公开 类型 = 整数>
变量 控制模式_锚点 <公开 类型 = 逻辑型>
变量 控制模式_水平均分 <公开 类型 = 逻辑型>
变量 控制模式_垂直均分 <公开 类型 = 逻辑型>
}
类 API <公开 注释 = "API" 折叠>
{
方法 GetParent <公开 静态 类型 = 整数 折叠 @输出名 = "GetParent" @视窗.输入 = "">
参数 hWnd <类型 = 整数>
方法 SetWindowLongA <公开 静态 类型 = 整数 折叠 @输出名 = "SetWindowLongA" @视窗.输入 = "">
参数 hWnd <类型 = 整数>
参数 nIndex <类型 = 整数>
参数 dwNewLong <类型 = 变整数>
方法 GetWindowLongA <公开 静态 类型 = 整数 折叠 @输出名 = "GetWindowLongA" @视窗.输入 = "">
参数 hWnd <类型 = 整数>
参数 nIndex <类型 = 整数>
方法 CallWindowProcA <公开 静态 类型 = 整数 折叠 @输出名 = "CallWindowProcA" @视窗.输入 = "">
参数 lpPrevWndFunc <类型 = 整数 注释 = "可能为一个 WNDPROC 子程序指针。">
参数 hWnd <类型 = 整数>
参数 Msg <类型 = 整数>
参数 wParam <类型 = 整数>
参数 lParam <类型 = 整数>
方法 取窗口矩形_ <公开 静态 类型 = 整数 @输出名 = "GetWindowRect" @视窗.输入 = "user32">
参数 窗口句柄 <类型 = 整数>
参数 矩形区域 <类型 = 矩形类>
方法 "//GetWindowRect" <公开 静态 类型 = 逻辑型 折叠 @输出名 = "GetWindowRect" @视窗.输入 = "">
参数 hWnd <类型 = 整数>
参数 lpRect <类型 = 矩形_ 注释 = "未知类型:LPRECT。">
方法 MoveWindow <公开 静态 类型 = 逻辑型 折叠 @输出名 = "MoveWindow" @视窗.输入 = "">
参数 hWnd <类型 = 整数>
参数 X <类型 = 整数>
参数 Y <类型 = 整数>
参数 nWidth <类型 = 整数>
参数 nHeight <类型 = 整数>
参数 bRepaint <类型 = 逻辑型>
方法 GetClientRect <公开 静态 类型 = 逻辑型 @输出名 = "GetClientRect" @视窗.输入 = "user32">
参数 hWnd <类型 = 整数>
参数 lpRect <类型 = 矩形类 注释 = "未知类型:LPRECT。">
方法 EnumChildWindows <公开 静态 类型 = 逻辑型 @输出名 = "EnumChildWindows" @视窗.输入 = "">
参数 hWndParent <类型 = 整数>
参数 lpEnumFunc <类型 = 变整数 注释 = "可能为一个 WNDENUMPROC 子程序指针。">
参数 lParam <类型 = 整数>
方法 IsWindowVisible <公开 静态 类型 = 逻辑型 折叠 @输出名 = "IsWindowVisible" @视窗.输入 = "">
参数 hWnd <类型 = 整数>
#
}
编译时出错
错误: 使用所指定的本地编译器编译当前程序失败
错误:
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(1265): warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(1287): warning C4244: “=”: 从“float”转换到“unsigned int”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(1288): warning C4244: “=”: 从“float”转换到“unsigned int”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(1289): warning C4244: “=”: 从“float”转换到“unsigned int”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(1487): warning C4244: “初始化”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(1495): warning C4244: “初始化”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(1537): warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(2631): warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(2635): warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(2639): warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvg.h(2643): warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvgrast.h(334): warning C4244: “参数”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\svg\nanosvgrast.h(334): warning C4244: “参数”: 从“double”转换到“float”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(291): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(291): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(565): warning C4311: “类型强制转换”: 从“const HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(565): warning C4302: “类型强制转换”: 从“const HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(786): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(786): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(807): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(807): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(814): warning C4244: “return”: 从“BOOL_P”转换到“逻辑型”,可能丢失数据
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(833): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(833): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(925): warning C4311: “类型强制转换”: 从“const HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(925): warning C4302: “类型强制转换”: 从“const HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1016): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1016): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1093): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1093): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1152): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1152): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1173): warning C4311: “类型强制转换”: 从“HMENU”到“UINT”的指针截断
H:\voldev25\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_menu.cpp(1173): warning C4302: “类型强制转换”: 从“HMENU”到“UINT”截断
vpkg_全局.cpp
vpkg_列表类.cpp
vpkg_功能类.cpp
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 428: 错误:
error C2733: “GetParent”: 无法重载具有外部 "C" 链接的函数
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(10029): note: 参见“GetParent”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 430: 错误:
error C2733: “SetWindowLongA”: 无法重载具有外部 "C" 链接的函数
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(9803): note: 参见“SetWindowLongA”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 434: 错误:
error C2733: “GetWindowLongA”: 无法重载具有外部 "C" 链接的函数
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(9785): note: 参见“GetWindowLongA”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 437: 错误:
error C2733: “CallWindowProcA”: 无法重载具有外部 "C" 链接的函数
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(4172): note: 参见“CallWindowProcA”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 449: 错误:
error C2733: “MoveWindow”: 无法重载具有外部 "C" 链接的函数
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(4718): note: 参见“MoveWindow”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 459: 错误:
error C2733: “EnumChildWindows”: 无法重载具有外部 "C" 链接的函数
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(10042): note: 参见“EnumChildWindows”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 428: 错误:
error C2664: “HWND GetParent(HWND)”: 无法将参数 1 从“整数”转换为“HWND”
note: 从整型强制转换为指针类型要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(10029): note: 参见“GetParent”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 430: 错误:
error C2664: “LONG SetWindowLongA(HWND,int,LONG)”: 无法将参数 1 从“整数”转换为“HWND”
note: 从整型强制转换为指针类型要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(9803): note: 参见“SetWindowLongA”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 434: 错误:
error C2664: “LONG GetWindowLongA(HWND,int)”: 无法将参数 1 从“整数”转换为“HWND”
note: 从整型强制转换为指针类型要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(9785): note: 参见“GetWindowLongA”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 437: 错误:
error C2664: “LRESULT CallWindowProcA(WNDPROC,HWND,UINT,WPARAM,LPARAM)”: 无法将参数 1 从“整数”转换为“WNDPROC”
note: 从整型强制转换为指针类型要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(4172): note: 参见“CallWindowProcA”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 449: 错误:
error C2664: “逻辑型 MoveWindow(HWND,int,int,int,int,逻辑型)”: 无法将参数 1 从“整数”转换为“HWND”
note: 从整型强制转换为指针类型要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(4718): note: 参见“MoveWindow”的声明
<H:\火山编程\PC端\机运站\存车表\新大表\003\新大表\功能类.v>, 459: 错误:
error C2664: “逻辑型 EnumChildWindows(HWND,WNDENUMPROC,LPARAM)”: 无法将参数 1 从“整数”转换为“HWND”
note: 从整型强制转换为指针类型要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
H:\voldev25\plugins\vprj_win\sdk\winsdk\10\include\10.0.22000.0\um\winuser.h(10042): note: 参见“EnumChildWindows”的声明
vpkg_外部组件操作库_.cpp
vpkg_存车大表_布局.cpp
正在生成代码...
正在编译...
vpkg_数据匹配库_.cpp
vpkg_日期时间库_.cpp
vpkg_程序综合库_.cpp
vpkg_股道图表_布局.cpp
正在生成代码...
编译生成目标文件"H:\火山编程\PC端\机运站\存车表\新大表\003\_int\新大表\debug\x64\linker\新大表.exe"失败,耗费时间 56437 毫秒.
--- 项目"新大表"编译或链接失败. 编译过程中共遇到了 0 个警告, 14 个错误.
API封错了,建议用嵌入式代码封。 嵌入式代码,不会啊
页:
[1]