Project1

标题: 仿 地下城 窗口 [打印本页]

作者: 凉凉の雨    时间: 2009-3-30 10:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫苏    时间: 2009-3-30 14:14
# (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
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 凉凉の雨    时间: 2009-3-30 20:54
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1