阴影窗口全屏源码
本帖最后由 dasemimi 于 2016-1-7 13:30 编辑阴影窗口全屏时,会占不满全屏窗口,此时就需要用到下面的例子
.版本 2
.局部变量 hWindow, 整数型
.局部变量 hEle, 整数型
.局部变量 hImage, 整数型
.局部变量 图片字节集, 字节集
.局部变量 bkInfoM, 整数型
' 初始化炫彩资源
XInitXCGUI ({})
' 创建窗口并且显示
XC_LoadResource (L (“xml\\resource.xml”), L (“xml”))
hWindow = XC_LoadLayout (L (“xml\\Layout.xml”), 0)
XWnd_RegEventC (hWindow, #WM_GETMINMAXINFO, 到整数 (&OnGetMaxInfo))
XWnd_ShowWindow (hWindow, 5)
XRunXCGUI ()' 内部消息处理等等
XExitXCGUI ()' 释放资源
.子程序 OnGetMaxInfo, 整数型, , int CALLBACK OnWndOther(WPARAM wParam,LPARAM lParam,BOOL *pbHandled)
.参数 wParam, 整数型
.参数 lParam, 整数型
.参数 pbHandled, 逻辑型, 参考
.局部变量 MinMaxInfo, MINMAXINFO
.局部变量 rtWorkAre, RECT
CopyMemory_MinMaxInfo_int (MinMaxInfo, lParam, Sizeof_MinMaxInfo (MinMaxInfo))
' 全屏
' MinMaxInfo.ptMaxPosition.x = -8
' MinMaxInfo.ptMaxPosition.y = -8
' MinMaxInfo.ptMaxTrackSize.x = GetSystemMetrics (#SM_CXSCREEN) + 16
' MinMaxInfo.ptMaxTrackSize.y = GetSystemMetrics (#SM_CYSCREEN) + 16
' 全屏不包含任务栏
SystemParametersInfo_WorkArea (#SPI_GETWORKAREA, 0, rtWorkAre, 0)
MinMaxInfo.ptMaxPosition.x = -8' 必须要剪掉阴影的左边宽度 下面也同理
MinMaxInfo.ptMaxPosition.y = -8
MinMaxInfo.ptMaxTrackSize.x = rtWorkAre.right + 16
MinMaxInfo.ptMaxTrackSize.y = rtWorkAre.bottom + 16
CopyMemory_int_MinMaxInfo (lParam, MinMaxInfo, Sizeof_MinMaxInfo (MinMaxInfo))
pbHandled = 真
返回 (0)
链接:http://pan.baidu.com/s/1bopUpu3 密码:7pah
我这里测试还需要再设置 ptMaxSize 才正确。
MinMaxInfo.ptMaxSize.x = rtWorkAre.right + 16
MinMaxInfo.ptMaxSize.y = rtWorkAre.bottom + 16 有个问题:最大化后最小化,然后还原(再次显示窗口),窗口尺寸又不正确了。要怎么解决呢?
页:
[1]