设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2680|回复: 4
打印 上一主题 下一主题

[已经解决] 【求教】如何隐藏标题栏

[复制链接]

Lv1.梦旅人

梦石
0
星屑
1755
在线时间
11 小时
注册时间
2014-7-9
帖子
4
跳转到指定楼层
1
发表于 2014-7-28 11:50:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 shanwenxiu2013 于 2014-7-28 11:52 编辑






如上两图,一般的会有标题栏,求助怎样可以隐藏标题栏变成下边这种样式。


Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10079
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2014-7-28 12:00:11 | 只看该作者
Main上面找个顺眼的地方插进去
  1. # (WinUser.h 中的一些宏)
  2. # GWL_STYLE        = -16
  3. # WS_CAPTION       = 0x00C00000L
  4. # SM_CXSCREEN      = 0
  5. # SM_CYSCREEN      = 1
  6. # SWP_FRAMECHANGED = 0x0020

  7. # 防止 F12 后再次执行
  8. if $START_NOCAPTION == nil
  9.   $START_NOCAPTION = 1
  10.   getPrivateProfileString = Win32API.new("kernel32", "GetPrivateProfileString", ['P', 'P', 'P', 'P', 'L', 'P'], 'L')
  11.   findWindow = Win32API.new("user32", "FindWindow", ['P', 'P'], 'L')
  12.   getWindowLong = Win32API.new("user32", "GetWindowLong", ['L', 'I'], 'L')
  13.   setWindowLong = Win32API.new("user32", "SetWindowLong", ['L', 'I', 'L'], 'L')
  14.   getSystemMetrics = Win32API.new("user32", "GetSystemMetrics", ['I'], 'I')
  15.   setWindowPos = Win32API.new("user32", "SetWindowPos",['L', 'L', 'I', 'I', 'I', 'I', 'I'], 'L')
  16.   
  17.   # 分配字符串缓冲区
  18.   title = " " * 128
  19.   # 通过读取 Game.ini 获取窗口标题
  20.   getPrivateProfileString.call("Game", "Title", "", title, 128, "./Game.ini")
  21.   # 通过窗口类名和标题获取窗口句柄
  22.   hWnd = findWindow.call('RGSS Player', title)
  23.   
  24.   # 获取窗口样式
  25.   style = getWindowLong.call(hWnd, -16)
  26.   # 去掉 WS_CAPTION 样式
  27.   style &= ~0x00C00000
  28.   # 应用新样式
  29.   setWindowLong.call(hWnd, -16, style)
  30.   # 获取屏幕尺寸
  31.   scr_width = getSystemMetrics.call(0)
  32.   scr_height = getSystemMetrics.call(1)
  33.   # 更新窗口框架并居中
  34.   setWindowPos.call(hWnd, 0, (scr_width - 544) / 2, (scr_height - 416) / 2, 544, 416, 0x0020)
  35. end
复制代码

点评

太触了  发表于 2014-7-28 17:49
好像是诶,不管啦。  发表于 2014-7-28 12:21
感觉防F12那个$START_NOCAPTION在VA里没有必要?  发表于 2014-7-28 12:13
我几乎不用FindWindow 一般都是GetActiveWindow代替的  发表于 2014-7-28 12:12

评分

参与人数 2星屑 +100 梦石 +1 收起 理由
taroxd + 1 认可答案
余烬之中 + 100 只剩这么多了

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1755
在线时间
11 小时
注册时间
2014-7-9
帖子
4
3
 楼主| 发表于 2014-7-28 12:31:45 | 只看该作者
VIPArcher 发表于 2014-7-28 12:00
Main上面找个顺眼的地方插进去

试了,很好用,伸手党表示太感谢了。 多问一句我试的时候都是打开一闪,标题栏消失。有没有直接就不显示标题栏的呢。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1755
在线时间
11 小时
注册时间
2014-7-9
帖子
4
4
 楼主| 发表于 2014-7-28 12:39:39 | 只看该作者
@余烬之中 求问大神。用了楼上脚本后实现了隐藏标题栏。是打开之后显示0.5秒然后消失。请问有什么办法可以让它彻底不显示的。多谢!!
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6643
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

5
发表于 2014-7-28 13:22:16 | 只看该作者
VIPArcher 发表于 2014-7-28 12:00
Main上面找个顺眼的地方插进去

那个0.5秒大约是等加载?不用外部调用的话貌似不行的样子…………
所以我只是来提供一个精简三行无注释版的……
  1. hwnd = Win32API.new("user32", "GetActiveWindow", nil, 'i').call
  2. Win32API.new("user32", "SetWindowLong", 'iil', 'l').call hwnd, -16,
  3. Win32API.new("user32", "GetWindowLong", 'ii', 'l').call(hwnd, -16) & ~0x00C00000
复制代码

点评

总之感谢二位!!!!  发表于 2014-7-28 16:40
(⊙o⊙)哦,没注意看。:p  发表于 2014-7-28 13:36
恩。我的意思就是外部调用,在RGSS Player显示之前就咔嚓  发表于 2014-7-28 13:35
那个是打开exe时原来的窗口样式,要彻底去掉,目测得去黑exe。&& 我不会  发表于 2014-7-28 13:31
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-1 07:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表