Project1
标题:
判断游戏是否处于全屏
[打印本页]
作者:
失落的乐章
时间:
2015-3-20 21:18
标题:
判断游戏是否处于全屏
本帖最后由 失落的乐章 于 2015-3-27 20:35 编辑
代码:
module Graphics
#取得窗口句柄
HWND = Win32API.new('user32','GetActiveWindow',nil,'l').call
def self.fullscreen?
#取得窗口范围矩形
window_rect = "\0" * 16
Win32API.new('user32','GetWindowRect',['l','p'],'i').call(HWND,window_rect)
wl,wt,wr,wb = window_rect.unpack('llll')
#取得客户区矩形
client_rect = "\0" * 16
Win32API.new('user32','GetClientRect',['l','p'],'i').call(HWND,client_rect)
cl,ct,cr,cb = client_rect.unpack('llll')
wr - wl == cr
end
end
复制代码
使用方法:
Graphics.fullscreen? #当游戏处于全屏状态时返回true, 否则返回false
复制代码
原理:
使用GetWindowRect 和GetClientRect 分别取得游戏窗口的整个范围矩形和客户区矩形。游戏全屏后,由于不再存在边框,这两个矩形就是相等的。而在窗口模式下,客户区矩形会小一些。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1