WIN32Dialog¶
Windows ネイティブダイアログを操作するためのクラスです。 APIのラッパ程度の機能しかないので非常に使いにくいですが, 後述のtjsで記述された WIN32DialogEX を使うと幸せになれます。
メンバー一覧¶
コンストラクタ¶
プロパティ¶
メソッド¶
- loadResource
- makeTemplate
- open
- close
- getItem
- getItemID
- getItemClassName
- setItemInt
- getItemInt
- setItemText
- getItemText
- setItemEnabled
- getItemEnabled
- setItemFocus
- setItemPos
- setItemSize
- getItemLeft
- getItemTop
- getItemWidth
- getItemHeight
- setItemBitmap
- sendItemMessage
- getBaseUnits
- mapRect
- invalidateRect
- setPos
- setSize
- setActive
- onInit
- onCommand
- onHScroll
- onVScroll
- onNotify
- onKeyDown
- onKeyUp
- messageBox
- chooseColor
- show
- InitCommonControls
- InitCommonControlsEx
- openPropertySheet
- propSheetMessage
- setMessageResult
- openProgress
- closeProgress
- insertTab
- deleteTab
- deleteAllTab
- getCurSel
- selectTab
- setScrollInfo
- getScrollInfo
WIN32Dialog¶
コンストラクタ
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
owner |
|
イベントコールバック用のオーナーを設定。nullかthisで自分自身へ送る。 |
解説
コンストラクタ
left¶
プロパティ \ アクセス: r
解説
ダイアログサイズの取得
読み取り専用。サイズの変更はできないので注意
top¶
プロパティ \ アクセス: r
width¶
プロパティ \ アクセス: r
height¶
プロパティ \ アクセス: r
modeless¶
プロパティ \ アクセス: r/w
解説
モードレスダイアログ用のフラグ
trueならばモードレス状態でダイアログを開きます。 モードレスではダイアログのstyleにWS_VISIBLEを指定しない場合は open()時に自動で表示されないので注意してください。
HWND¶
プロパティ \ アクセス: r
解説
ダイアログのウィンドウハンドル
icon¶
プロパティ \ アクセス: r/w
解説
ダイアログのアイコン画像
WIN32Dialog.Bitmapクラスのインスタンス:その画像 null:実行ファイルのアイコン void:アイコンなし
isValid¶
プロパティ \ アクセス: r
解説
ダイアログを open しているかどうか
propsheet¶
プロパティ \ アクセス: r
解説
プロパティシートとして表示中かどうか
progress¶
プロパティ \ アクセス: r
解説
プログレス状態かどうか
progressValue¶
プロパティ \ アクセス: r/w
解説
プログレスバーを更新する(0-100の数値 or 負数の場合マーキー状態の速度)
progressCanceled¶
プロパティ \ アクセス: r/w
解説
プログレスがキャンセルされたかどうか(※対象ボタンはIDCANCEL固定)
loadResource¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
dllfile |
|
dllファイル(ローカルストレージ形式) |
resource |
|
ダイアログリソース名 |
解説
ダイアログリソースを読み込む
makeTemplate¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
header |
|
ダイアログテンプレートヘッダ (WIN32Dialog.Headerクラスのインスタンスであること) |
items* |
|
ダイアログテンプレートアイテム(WIN32Dialog.Items クラスのインスタンスであること) |
解説
ダイアログテンプレートを生成する
open¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
window |
|
親ウィンドウ(吉里吉里の Window クラス),省略時またはvoid時は親なし |
解説
ダイアログを開く
あらかじめ makeTemplate でダイアログテンプレートが生成されているか または loadResource でダイアログリソースの読み込んでいること makeTemplate より loadResource のデータ優先されるので注意
close¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
result |
|
EndDialog APIに渡す結果値 |
解説
ダイアログを閉じる
getItem¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
戻り値
ダイアログアイテムのHWND
解説
GetDlgItem のラッパー
getItemID¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
hwnd |
|
ダイアログアイテムのHWND |
戻り値
ダイアログアイテムのID
解説
GetDlgCtrlID のラッパー
getItemClassName¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
戻り値
ダイアログアイテムのクラス名
解説
GetClassName のラッパー
setItemInt¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
value |
|
設定する値(setの場合のみ) |
戻り値
取得結果(getの場合のみ)
解説
Get/SetDlgItemInt/Text のラッパー
getItemInt¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
setItemText¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
|
value |
|
getItemText¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
setItemEnabled¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
value |
|
有効・無効の設定(setの場合のみ) |
戻り値
取得結果(getの場合のみ)
解説
アイテムの有効・無効を設定・取得する
getItemEnabled¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
setItemFocus¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
解説
アイテムにフォーカスを設定する
setItemPos¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
x |
|
ダイアログアイテムのX座標 |
y |
|
ダイアログアイテムのY座標 |
解説
アイテムの位置・大きさを変更・取得する
setItemSize¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
|
w |
|
|
h |
|
getItemLeft¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
getItemTop¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
getItemWidth¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
getItemHeight¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
setItemBitmap¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
bmp |
|
ビットマップに設定するWIN32Dialog.Bitmapのインスタンス WIN32DialogEXではLayerインスタンスが指定可能 |
解説
アイテムにBitmapを設定する
sendItemMessage¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
ダイアログアイテムのID |
msg |
|
送るメッセージ |
wparam |
|
送るwparam |
lparam |
|
送るlparam |
戻り値
LRESULT
解説
SendDlgItemMessage のラッパー
getBaseUnits¶
メソッド
戻り値
結果辞書(%[ h:水平単位, v:垂直単位 ])
解説
GetDialogBaseUnit のラッパー
mapRect¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
rect |
|
矩形領域辞書配列(%[ left, top, right, bottom ]) |
戻り値
結果辞書配列(%[ left, top, right, bottom ])
解説
MapDialogRect のラッパー
invalidateRect¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
rect |
|
矩形領域辞書配列(%[ left, top, right, bottom ]) |
erase |
|
消去するかどうかフラグ |
戻り値
成功ならtrue
解説
InvalidateRect のラッパー
setPos¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
x |
|
x座標 |
y |
|
y座標 ダイアログ表示中以外はエラーになるので注意。onInitなどにて座標を変更すること |
解説
ダイアログ座標を設定
setSize¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
w |
|
width |
h |
|
height ダイアログ表示中以外はエラーになるので注意。 |
解説
ダイアログの大きさを設定
setActive¶
メソッド
解説
ダイアログをアクティブにする
このメソッドを追加する前のバージョンでは setPos/setSize でアクティブ化していた問題があったので留意のこと(現在はアクティブ化しない)
onInit¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
msg |
|
DlgProc のメッセージ == WM_INITDIALOG |
wparam |
|
DlgProc のWPARAM |
lparam |
|
DlgProc のLPARAM |
解説
WM_INITDIALOG のコールバック
コールバックはownerに対して呼ばれるので注意してください owner.onInitが未定義なら何もしません。
onCommand¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
msg |
|
DlgProc のメッセージ == WM_COMMAND |
wparam |
|
DlgProc のWPARAM |
lparam |
|
DlgProc のLPARAM |
解説
WM_COMMAND のコールバック
コールバックはownerに対して呼ばれるので注意してください。 owner.onCommandが未定義なら何もしません。
onHScroll¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
msg |
|
DlgProc のメッセージ == WM_HSCROLL |
wparam |
|
DlgProc のWPARAM |
lparam |
|
DlgProc のLPARAM |
解説
WM_HSCROLL のコールバック
onVScroll¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
msg |
|
DlgProc のメッセージ == WM_VSCROLL |
wparam |
|
DlgProc のWPARAM |
lparam |
|
DlgProc のLPARAM |
解説
WM_VSCROLL のコールバック
onNotify¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
msg |
|
|
wparam |
|
DlgProc のWPARAM |
lparam |
|
解説
WM_NOTIFY のコールバック
onKeyDown¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
wparam |
|
DlgProc のWPARAM |
lparam |
|
DlgProc のLPARAM |
解説
WM_KEYDOWN のコールバック
onKeyUp¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
wparam |
|
DlgProc のWPARAM |
lparam |
|
DlgProc のLPARAM |
解説
WM_KEYUP のコールバック
messageBox¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
window |
|
オーナーwindow(指定しない場合はnullを渡すこと) |
text |
|
メッセージテキスト |
caption |
|
ダイアログボックスのキャプション |
type |
|
表示するボタンやアイコンのフラグの組み合わせ |
戻り値
押されたボタンのID type に独自フラグ MB_OWNER_CENTER を設定するとオーナーウィンドウの中央に表示しようとする (ただしダイアログが画面外になる場合はデスクトップの中央になる)
解説
MessageBox のラッパー
chooseColor¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
window |
|
オーナーwindow(指定しない場合はnullを渡すこと) |
elm |
|
オプション(辞書または省略可能) %[ color:初期選択色, palette:[ パレット色1, ... , パレット色16 ], disableCustomColor:色の作成を無効にする, openCustomColor:色作成を最初から開いた状態にする ] |
戻り値
選択された色(0xRRGGBB) キャンセル時はvoid elm.palette が渡された場合は,その内容も更新される
解説
ChooseColor のラッパー
show¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
nCmdShow |
|
SW_*フラグ |
解説
ShowWindow のラッパー
主にモードレスダイアログ用です。
InitCommonControls¶
メソッド
戻り値
成功したか(〜Exのみ)
解説
InitCommonControls, InitCommonControlsEx のラッパー
InitCommonControlsEx¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
icc |
|
openPropertySheet¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
window |
|
オーナーwindow(指定しない場合はnullを渡すこと) |
sheets |
|
シート情報(WIN32Dialogインスタンスの配列) |
elm |
|
オプション(辞書または省略可能) %[ caption:プロパティシートタイトル, page:初期ページ番号, icon:アイコン ] |
戻り値
::PropertySheetの返り値
解説
プロパティシートを表示する(常にモーダル:モードレスは未実装)
propSheetMessage¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
msg |
|
|
wparam |
|
|
lparam |
|
解説
PSM_* メッセージをプロパティシートウィンドウに送信する
setMessageResult¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
value |
|
解説
DWL_MSGRESULTの値を設定する
openProgress¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
プログレスバーのダイアログアイテムID(progressValueプロパティで更新される対象) |
window |
|
[optional] オーナーwindow (void=オーナーなし,null=Application) |
dsapp |
(typeof window!="Object") |
[optional] プログレス表示中はアプリケーションウィンドウを無効にするか |
breathe |
(typeof window=="Object") |
[optional] progressValueのsetterでbreatheするかどうか |
activate |
true |
戻り値
成功したらtrue
解説
プログレスダイアログを表示する
プログレスダイアログのstyleにはWS_VISIBLEを指定しないこと 閉じるときは必ず closeProgress() を使用すること プログレス表示の場合,onInit以外のコールバックは来ないので注意
closeProgress¶
メソッド
解説
プログレスダイアログを閉じる
insertTab¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
tab_id |
|
|
pos |
|
|
label |
|
解説
タブコントロールを利用する.
利用手順を検討中 insertTab(IDC_TAB, 0, "基本"); // タブを追加 // deleteTab(IDC_TAB, 0); // タブを削除 // deleteAllTab(IDC_TAB); // タブをすべて削除 var dlg = new WIN32Dialog(); dlg.loadResource("resource.dll", "INNER"); // Border=None, Style=Child にしたダイアログ selectTab(IDC_TAB, dlg); // 表示 insertTab(IDC_TAB, 1, "拡張"); var dlg2 = new WIN32Dialog(); dlg2.loadResource("resource.dll", "INNER2"); dlg.show(SW_HIDE); selectTab(IDC_TAB, dlg2); // 切り替え // onNotify で notify->code == TCN_SELCHANGE かつ notify->idFrom == IDC_TAB の場合にユーザーによるタブの切り替え // getCurSel(tab_id) でタブの番号を取得し、対応するダイアログを SW_SHOW、それ以外を SW_HIDE する // タブ番号と対応するダイアログは自分で管理すること ※ dlg,dlg2 の open は selectTab されたときに行われるので、show(SW_HIDE) するときは isValid で open されているか確認のこと
deleteTab¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
tab_id |
|
|
pos |
|
deleteAllTab¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
tab_id |
|
getCurSel¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
tab_id |
|
selectTab¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
tab_id |
|
|
dialog |
|
setScrollInfo¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
スクロールバーのダイアログアイテムID |
pos |
|
スライダーの位置 |
min |
|
取りうる最小の値 |
max |
|
取りうる最大の値 |
page |
|
ページの値 |
解説
ScrollInfo の設定
getScrollInfo¶
メソッド
引数
| 引数 | 既定値 | 説明 |
|---|---|---|
id |
|
スクロールバーのダイアログアイテムID |
戻り値
%[pos, min, max, page]
解説
ScrollInfo の取得