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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

跳转到指定楼层
1
发表于 2017-3-12 12:01:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

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

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

那麼這個訊息窗標題也會叫 "你好"
我想改成其他訊息
[神性领域扩张:扩张神性领域]
说了等于没说.

Lv1.梦旅人

梦石
0
星屑
60
在线时间
52 小时
注册时间
2017-1-12
帖子
192
2
发表于 2017-3-12 13:59:38 | 只看该作者
改变标题的图片文字

点评

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

评分

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

查看全部评分

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

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

3
发表于 2017-3-12 14:46:22 | 只看该作者
本帖最后由 RaidenInfinity 于 2017-3-12 15:56 编辑

RUBY 代码复制
  1. # 按钮常量
  2. BUTTONS_OK = 0 #只有确定
  3. BUTTONS_OKCANCEL = 1 #确定/取消
  4. BUTTONS_ABORTRETRYIGNORE = 2 #终止/重试/跳过
  5. BUTTONS_YESNO = 4 #是/否
  6.  
  7. # 返回码常量
  8. CLICKED_OK = 1 #按下确定
  9. CLICKED_CANCEL = 2 #按下取消
  10. CLICKED_ABORT = 3 #按下终止
  11. CLICKED_RETRY = 4 #按下重试
  12. CLICKED_IGNORE = 5 #按下无视
  13. CLICKED_YES = 6 #按下是
  14. CLICKED_NO = 7 #按下否
  15.  
  16. #系统函数导入
  17. MSGBOX = Win32API.new('user32','MessageBoxW','LPPL','L')
  18. MBWC = Win32API.new("kernel32","MultiByteToWideChar",'LLPLPL','L')
  19. #获取游戏窗口的"把柄"
  20. HWND = Win32API.new('user32', 'FindWindow', 'PP','L').call('RGSS Player',nil)
  21.  
  22. #修正UTF-8字符的问题
  23. def multi_to_wide(txt)
  24.   int = MBWC.call(65001, 0, txt, -1, nil, 0)
  25.   return "" if int <= 0
  26.   buf = ' ' * int * 2
  27.   MBWC.call(65001, 0, txt, -1, buf, int)
  28.   return buf + "\0\0"
  29. end  
  30.  
  31. #显示讯息窗
  32. #递入参数:内容,标题,按钮设定
  33. #返回内容:按下的按钮
  34. def message_box(txt, title = "", buttons = BUTTONS_OK)
  35.     return MSGBOX.call(HWND, multi_to_wide(txt), multi_to_wide(title), buttons)
  36. end
  37.  
  38. #范例:显示讯息窗
  39. message_box("讯息内容", "讯息标题")
  40.  
  41. #范例:显示讯息窗,按钮设置为:是/否
  42. response = message_box("内容", "标题", BUTTONS_YESNO)
  43. if response == CLICKED_YES
  44.     p "用户选择了是"
  45. else
  46.     p "用户选择了否"
  47. end


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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 00:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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