查看: 2412|回复: 3

[已经解决] 想做一個訊息窗口,改它的標題

[复制链接]
梦石
0
星屑
2116
在线时间
950 小时
注册时间
2015-7-16
回帖
692

开拓者

发表于 2017-3-12 12:01:36 | 显示全部楼层 |阅读模式

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

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

×

如果我輸入 腳本 msgbox "hello"
接著會跳出訊息窗

窗口的標題我想修改,請問該怎麼改呢?
比方說,遊戲命名為 "你好"

那麼這個訊息窗標題也會叫 "你好"
我想改成其他訊息
[神性领域扩张:扩张神性领域]
说了等于没说.
梦石
0
星屑
60
在线时间
52 小时
注册时间
2017-1-12
回帖
183
发表于 2017-3-12 13:59:38 | 显示全部楼层
改变标题的图片文字

点评

雷霆一扣下去。。你真的会挂。。  发表于 2017-3-12 15:35

评分

参与人数 1星屑 -16000 梦石 -16 收起 理由
RaidenInfinity -16000 -16 【累犯x5】版规B-6 + B-9

查看全部评分

别问我是谁! 我只是一个不为人知的小白而已..
回复

使用道具 举报

梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2017-3-12 14:46:22 | 显示全部楼层
本帖最后由 RaidenInfinity 于 2017-3-12 15:56 编辑

[pre lang="ruby"]
# 按钮常量
BUTTONS_OK = 0 #只有确定
BUTTONS_OKCANCEL = 1 #确定/取消
BUTTONS_ABORTRETRYIGNORE = 2 #终止/重试/跳过
BUTTONS_YESNO = 4 #是/否

# 返回码常量
CLICKED_OK = 1 #按下确定
CLICKED_CANCEL = 2 #按下取消
CLICKED_ABORT = 3 #按下终止
CLICKED_RETRY = 4 #按下重试
CLICKED_IGNORE = 5 #按下无视
CLICKED_YES = 6 #按下是
CLICKED_NO = 7 #按下否

#系统函数导入
MSGBOX = Win32API.new('user32','MessageBoxW','LPPL','L')
MBWC = Win32API.new("kernel32","MultiByteToWideChar",'LLPLPL','L')
#获取游戏窗口的"把柄"
HWND = Win32API.new('user32', 'FindWindow', 'PP','L').call('RGSS Player',nil)

#修正UTF-8字符的问题
def multi_to_wide(txt)
  int = MBWC.call(65001, 0, txt, -1, nil, 0)
  return "" if int <= 0
  buf = ' ' * int * 2
  MBWC.call(65001, 0, txt, -1, buf, int)
  return buf + "\0\0"
end  

#显示讯息窗
#递入参数:内容,标题,按钮设定
#返回内容:按下的按钮
def message_box(txt, title = "", buttons = BUTTONS_OK)
    return MSGBOX.call(HWND, multi_to_wide(txt), multi_to_wide(title), buttons)
end
  
#范例:显示讯息窗
message_box("讯息内容", "讯息标题")

#范例:显示讯息窗,按钮设置为:是/否
response = message_box("内容", "标题", BUTTONS_YESNO)
if response == CLICKED_YES
    p "用户选择了是"
else
    p "用户选择了否"
end
[/pre]

RGSS3自带的msgbox的确是不够用的。因此得另外开Win32API呼叫系统方法来执行显示。
基本上是用了user32.dll里面的MessageBoxW系统API函数,然后需要kernel32的MultiByteToWideChar来修正UTF-8字符。
(这是因为MessageBoxW需要UTF-16编码的字符串作为参数,而RGSS3用的是UTF-8)

评分

参与人数 1星屑 +30 收起 理由
duzine + 30 太棒了,這就來研究OW&amp;lt;

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部