控制窗口最小宽度、高度

转自: http://www.lsrxc.com/archives/595.html     异萝松的技术博客

当拖动窗口边框改变窗口大小于,控制窗口的最小宽度、高度或最大宽度、高度。

[code lang=”JS”]
//新增全局结构point
type point from structure
long x
long y
end type
[/code]

[code lang=”JS”]
//新增全局结构minmaxinfo
type minmaxinfo from structure
point ptreserved
point ptmaxsize
point ptmaxposition
point ptmintracksize
point ptmaxtracksize
end type
[/code]

[code lang=”JS”]
//添加全局外部函数
//Global External Functions
subroutine GetMinMaxInfo(ref minmaxinfo d, long s, long l) library "kernel32.dll" alias for "RtlMoveMemory"
subroutine SetMinMaxInfo(long d, minmaxinfo s, long l) library "kernel32.dll" alias for "RtlMoveMemory"
[/code]

[code lang=”JS”]
//添加窗口实例变量
private:
long il_orig_width = 2935//最小窗口宽度
long il_orig_height = 1728//最小窗口高度
[/code]

[code lang=”JS”]
//新增窗口自定义事件ue_minmaxinfo,并选择事件ID为:pbm_getminmaxinfo
//Event ID: pbm_getminmaxinfo
minmaxinfo lstr_minmaxinfo

/* copy the data, pointed by the argument MinMaxInfo, to our lstr_MinMaxInfo structure */

GetMinMaxInfo(lstr_minmaxinfo, minmaxinfo, 40)

/* set the minimal size for our window */

lstr_minmaxinfo.ptmintracksize.x = UnitsToPixels(il_orig_width, XUnitsToPixels!)
lstr_minmaxinfo.ptmintracksize.y = UnitsToPixels(il_orig_height, YUnitsToPixels!)

/* copy the structure back into memory at the same place */

SetMinMaxInfo(minmaxinfo, lstr_minmaxinfo, 40)

/* important, according to the MS API, we must return 0 */

return 0
[/code]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值