 
RubyよりWindowsの共通ダイアログを呼び出すライブラリ(windlg.rb)です。メッセージボックス、インプットボックス、
      ファイル開、ファイル名を付けて保存ダイアログが使用出来ます。動作確認は、
      ruby 2.6.3p62 RubyInstaller x86で行っています。
      windlg.rbのダウンロード(windlg_V104.7z)
   
WinDlgtクラス ダイアログ用クラスです。
| 定数 | 内容 | 
|---|---|
| MB_OK | 「OK」ボタンを表示します。 | 
| MB_OKCANCEL | 「OK」、「キャンセル」ボタンを表示します。 | 
| MB_ABORTRETRYIGNORE | 「中止」、「再試行」、「無視」ボタンを表示します。 | 
| MB_YESNOCANCEL | 「はい」、「いいえ」、「キャンセル」ボタンを表示します。 | 
| MB_YESNO | 「はい」、「いいえ」ボタンを表示します。 | 
| MB_RETRYCANCEL | 「再試行」、「キャンセル」ボタンを表示します。 | 
| MB_CANCELTRYCONTINUE | 「キャンセル」、「再実行」、「続行」ボタンを表示します。 | 
| 定数 | 内容 | 
|---|---|
| MB_ICONSTOP、MB_ICONERROR、MB_ICONHAND | 停止アイコンを表示します。 | 
| MB_ICONQUESTION | 疑問符(?)アイコンを表示します。 | 
| MB_ICONWARNING、MB_ICONEXCLAMATION | 感嘆符(!)アイコンを表示します。 | 
| MB_ICONINFORMATION、MB_ICONASTERISK | 丸の中に小文字の「i」が描かれたアイコンを表示します。 | 
| 定数 | 内容 | 
|---|---|
| MB_DEFBUTTON1 | 最初のボタンをデフォルトのボタンとします。MB_DEFBUTTON2、MB_DEFBUTTON3、MB_DEFBUTTON4 の いずれかが指定されていない限り、MB_DEFBUTTON1 がデフォルトとなります。 | 
| MB_DEFBUTTON2 | 2番目のボタンをデフォルトのボタンとします。 | 
| MB_DEFBUTTON3 | 3番目のボタンをデフォルトのボタンとします。 | 
| MB_DEFBUTTON4 | 4番目のボタンをデフォルトのボタンとします。 | 
| 定数 | 内容 | 
|---|---|
| IDOK | 「OK]ボタンが押されました。 | 
| IDCANCEL | 「キャンセル」ボタンが押されました。 | 
| IDABORT | 「中止」ボタンが押されました。 | 
| IDRETRY | 「再試行」ボタンが押されました。 | 
| IDIGNORE | 「無視」ボタンが押されました。 | 
| IDYES | 「はい」ボタンが押されました。 | 
| IDNO | 「いいえ」ボタンが押されました。 | 
| IDTRYAGAIN | 「再実行」ボタンが押されました。 | IDCONTINUE | 「続行」ボタンが押されました。 | 
| メンバ名 | 型 | 内容 | 
|---|---|---|
| sTitle | 文字 | ダイアログのタイトルバーに表示される文字列を指定します。 | 
| sArFilter | 文字型の2次元配列 | 選択対象のファイルをフィルタリングするための文字列を指定します。
                            表示される文字列とフィルタ文字列をペアで指定します。 例 [[ "テキスト(*.txt)", "*.txt"], ["すべて(*.*)", "*.*"] ] | 
| iFilterIndx | 整数 | sArFilterで指定したフィルタで最初に表示されるフィルタを指定します。0~ | 
| sIniDir | 文字 | 初期フォルダを指定します。 | 
| iFlags | 整数 | ダイアログ初期化用のフラグを指定します。下記表のORで指定します。 | 
| sFnameFull | 文字 | 選択されたファイル名がフルパスでセットされます。 | 
| sFname | 文字 | 選択されたファイル名がセットされます。 | 
| フラグ名 | 内容 | 
|---|---|
| OFN_OVERWRITEPROMPT | 保存時に選択されたファイルが存在する場合、上書き確認を行います。 | 
| OFN_FILEMUSTEXIST | 存在するファイルしか選択出来ないようにします。(ファイル開では、デフォルト) | 
| OFN_PATHMUSTEXIST | 有効なパスとディレクトリしか入力できないようにします。 | 
WinDlg = WinDlgt.new(__ENCODING__)
引数に文字のエンコーディング「__ENCODING__」を指定します。 シフトJIS(magic comment:「Windows-31j」,「shift_jis」)とUTF-8が有効です。
# -*- coding: utf-8 -*-
require './windlg'
WinDlg = WinDlgt.new(__ENCODING__)
ir = WinDlg.msgbox("使用例の実行を行いますか?", "使用例の開始", WinDlgt::MB_YESNO | WinDlgt::MB_ICONQUESTION)
if ir == WinDlgt::IDNO
   exit
end
sr = WinDlg.inputBox("文字を入力して下さい。","inputboxの例")
if sr == nil
   print "キャンセルボタンが押されました¥r¥n"
else
   print "入力された文字は、「" + sr + "」です。¥r¥n"
end
ofnd = OPENFILENAME.new
ofnd.sTitle = "ファイルを開く"
ofnd.sArFilter = [[ "テキスト(*.txt)", "*.txt"], ["すべて(*.*)", "*.*"] ]
ofnd.iFilterIndx = 0
ofnd.sIniDir = "c:¥¥"
ir = WinDlg.getOpenFileName(ofnd)
if ir != 0
   print ofnd.sFnameFull + "¥r¥n"
   print ofnd.sFname + "¥r¥n"
end
ofnd.sTitle = "ファイルを保存"
ofnd.sArFilter = [[ "テキスト(*.txt)", "*.txt"], ["すべて(*.*)", "*.*"] ]
ofnd.iFilterIndx = 0
ofnd.sIniDir = "c:¥¥"
ofnd.iFlags = WinDlgt::OFN_OVERWRITEPROMPT
ir = WinDlg.getSaveFileName(ofnd)
if ir != 0
   print ofnd.sFnameFull + "¥r¥n"
   print ofnd.sFname + "¥r¥n"
end
履歴