查看: 2022|回复: 2

仿 地下城 窗口

  [复制链接]
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-3-27
回帖
100
发表于 2009-3-30 10:19:19 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-3-30 14:14:05 | 显示全部楼层
# (WinUser.h 中的一些宏)
# GWL_STYLE        = -16
# WS_CAPTION       = 0x00C00000L
# SM_CXSCREEN      = 0
# SM_CYSCREEN      = 1
# SWP_FRAMECHANGED = 0x0020

# 防止 F12 后再次执行

if $START_NOCAPTION == nil
  $START_NOCAPTION = 1
  getPrivateProfileString = Win32API.new("kernel32", "GetPrivateProfileString", ['P', 'P', 'P', 'P', 'L', 'P'], 'L')
  findWindow = Win32API.new("user32", "FindWindow", ['P', 'P'], 'L')
  getWindowLong = Win32API.new("user32", "GetWindowLong", ['L', 'I'], 'L')
  setWindowLong = Win32API.new("user32", "SetWindowLong", ['L', 'I', 'L'], 'L')
  getSystemMetrics = Win32API.new("user32", "GetSystemMetrics", ['I'], 'I')
  setWindowPos = Win32API.new("user32", "SetWindowPos",['L', 'L', 'I', 'I', 'I', 'I', 'I'], 'L')
  
  # 分配字符串缓冲区
  title = " " * 128
  # 通过读取 Game.ini 获取窗口标题
  getPrivateProfileString.call("Game", "Title", "", title, 128, "./Game.ini")
  # 通过窗口类名和标题获取窗口句柄
  hWnd = findWindow.call('RGSS Player', title)
  
  # 获取窗口样式
  style = getWindowLong.call(hWnd, -16)
  # 去掉 WS_CAPTION 样式
  style &= ~0x00C00000
  # 应用新样式
  setWindowLong.call(hWnd, -16, style)
  # 获取屏幕尺寸
  scr_width = getSystemMetrics.call(0)
  scr_height = getSystemMetrics.call(1)
  # 更新窗口框架并居中
  setWindowPos.call(hWnd, 0, (scr_width - 640) / 2, (scr_height - 480) / 2, 640, 480, 0x0020)
end

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-3-27
回帖
100
 楼主| 发表于 2009-3-30 20:54:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部