dasemimi 发表于 2016-1-7 13:28:49

阴影窗口全屏源码

本帖最后由 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

tmplinshi 发表于 2016-11-26 14:50:58

我这里测试还需要再设置 ptMaxSize 才正确。
MinMaxInfo.ptMaxSize.x = rtWorkAre.right + 16
MinMaxInfo.ptMaxSize.y = rtWorkAre.bottom + 16

tmplinshi 发表于 2016-11-26 19:16:46

有个问题:最大化后最小化,然后还原(再次显示窗口),窗口尺寸又不正确了。要怎么解决呢?
页: [1]
查看完整版本: 阴影窗口全屏源码