Project1

标题: MessageBox (Win32API的类方法) [打印本页]

作者: sizz123    时间: 2007-6-29 15:26
标题: MessageBox (Win32API的类方法)
记得有人问过调用msg的问题,找ruby api教程的时候,找到这个东西,于是发上来

require 'Win32API'
# require 'dl/win32'
class Win32API
  # type flag
  MB_OK               = 0
  MB_OKCANCEL         = 1
  MB_ABORTRETRYIGNORE = 2
  MB_YESNOCANCEL      = 3
  MB_YESNO            = 4
  MB_RETRYCANCEL      = 5

  # return values
  IDOK     = 1
  IDCANCEL = 2
  IDABORT  = 3
  IDRETRY  = 4
  IDIGNORE = 5
  IDYES    = 6
  IDNO     = 7

  def Win32API.MessageBox(wnd, text, caption, type = MB_OK)
    messagebox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i')

    messagebox.call(wnd, text, caption, type)
  end

  def Win32API.MessageBoxEx(wnd, text, caption, type = MB_OK, languageid = 0)
    messagebox = Win32API.new('user32', 'MessageBoxEx', %w(p p p i i), 'i')

    messagebox.call(wnd, text, caption, type, languageid)
  end
end

p Win32API.MessageBox(0, "test message", "test caption")
p Win32API.MessageBoxEx(0, "test message", "test caption")
p Win32API.MessageBox(0, "てすと", "テスト")
p Win32API.MessageBoxEx(0, "てすと", "テスト")

[LINE]1,#dddddd[/LINE]本贴由论坛斑竹灼眼的夏娜结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: sizz123    时间: 2007-6-29 15:26
标题: MessageBox (Win32API的类方法)
记得有人问过调用msg的问题,找ruby api教程的时候,找到这个东西,于是发上来

require 'Win32API'
# require 'dl/win32'
class Win32API
  # type flag
  MB_OK               = 0
  MB_OKCANCEL         = 1
  MB_ABORTRETRYIGNORE = 2
  MB_YESNOCANCEL      = 3
  MB_YESNO            = 4
  MB_RETRYCANCEL      = 5

  # return values
  IDOK     = 1
  IDCANCEL = 2
  IDABORT  = 3
  IDRETRY  = 4
  IDIGNORE = 5
  IDYES    = 6
  IDNO     = 7

  def Win32API.MessageBox(wnd, text, caption, type = MB_OK)
    messagebox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i')

    messagebox.call(wnd, text, caption, type)
  end

  def Win32API.MessageBoxEx(wnd, text, caption, type = MB_OK, languageid = 0)
    messagebox = Win32API.new('user32', 'MessageBoxEx', %w(p p p i i), 'i')

    messagebox.call(wnd, text, caption, type, languageid)
  end
end

p Win32API.MessageBox(0, "test message", "test caption")
p Win32API.MessageBoxEx(0, "test message", "test caption")
p Win32API.MessageBox(0, "てすと", "テスト")
p Win32API.MessageBoxEx(0, "てすと", "テスト")

[LINE]1,#dddddd[/LINE]本贴由论坛斑竹灼眼的夏娜结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: 絮儿    时间: 2007-6-29 15:51
好棒``~{/hx}恩恩`~师傅一直8肯教我`~那``自己看吧= =~(虽然8一定看得懂``{/tp})
作者: 幻の飞鱼    时间: 2007-6-29 18:20
API的依旧看不懂啊
作者: 小真·爱舞    时间: 2007-6-29 18:55
直接插入立刻错误.....
应该不是冲突...API看不懂..研究一下好了。
作者: 夺爱    时间: 2007-6-29 19:35
云里,雾里.看天书
作者: 暗之影    时间: 2007-6-29 20:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 七夕小雨    时间: 2007-6-29 21:52
MessageBox…………

什么时候来个inputbox
作者: 神思    时间: 2007-6-29 23:26
以下引用絮儿于2007-6-29 7:51:13的发言:

好棒``~恩恩`~师傅一直8肯教我`~那``自己看吧= =~(虽然8一定看得懂``)

{/lh}-___-不知道你说的那位师父还是不是在下```
如果是的话`...- -```因为我自己也不是太明白```根本就谈不上教....


以下引用小真·爱舞于2007-6-29 10:55:31的发言:

直接插入立刻错误.....
应该不是冲突...API看不懂..研究一下好了。


把require 'Win32API'去掉...



其实弹出一个窗口只需要MessageBox这么一个函数就够了
作者: koalli    时间: 2007-6-29 23:36
晕。。。都好厉害```

我一点都看不懂的说....
作者: sizz123    时间: 2007-6-30 02:21
从网上下载的vb api中还找不到message的资料
有点不明白的地方
wnd是什么参数
作者: 轮回者    时间: 2007-6-30 02:53
以下引用小真·爱舞于2007-6-29 10:55:31的发言:

直接插入立刻错误.....
应该不是冲突...API看不懂..研究一下好了。

在RMXP里用记得把require 'Win32API'删掉
RMXP把require给改了……
作者: sizz123    时间: 2007-7-1 01:56
说一下
上面的type flag写不写都一样,那些数据是固定的,也就是说,你把 IDOK的返回数值设置成7,得到的还是1.

作者: 美兽    时间: 2007-7-1 02:30
一般不建议把新内容写在原有类的内部,
尤其是常见的obj,string之中,
否则每次生成对象都要多产生多余的消耗。

而模块属于静态,若涉及庞大数据也不建议放在模块中,
一般来说,若不为了整齐好看,动态运行的类中是最好的选择。
作者: dna_7086    时间: 2007-7-1 21:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: gpra8764    时间: 2007-7-5 06:49
提示: 作者被禁止或删除 内容自动屏蔽




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