ウインドウを表現するクラス。フォームウインドウもコントロールウインドウもこの
クラスで表現する。インスタンス作成にはSWin::LWFactory#newwindowを使用します。
ここに書かれたメソッドの他、描画系メソッドも使用できます(ただし条件付き)。
hWnd
- 返値 Integer
- 自分自身のウインドウハンドルを読み出すことが出来ます
hParent
- 返値 Integer
- 親ウインドウのハンドルを読み出すことが出来ます
classname
- 代入可能属性 String
- ウインドウのクラス名を設定し読み出します。ここでいうクラス名とは
Windowsシステムが認識するクラス名のことです。
無設定の場合はswinデフォルトの物が使われます。
style
- 代入可能属性 Integer
- ウインドウのスタイルを設定します。WindowsのAPI使用時、通常のウインドウなら
WS_***、ボタンならBS_***などとして表現されるアレです。
exstyle
- 代入可能属性 Integer
- ウインドウの拡張スタイルを設定します。
caption
- 代入可能属性 Integer
- ウインドウのキャプションを設定し読み出します。フォームの場合はタイトルバーに
表示される文字列であり、ボタンの場合はボタンに書かれた文字列となるなど、
クラスによって意味が異なります。
x
- 返値 Integer
- ウインドウの左上のx座標を示します。WndProcをフックしていない(hookwndproc?==false)と正しい値を示さないことがあります。
y
- 返値 Integer
- ウインドウの左上のy座標を示します。WndProcをフックしていない(hookwndproc?==false)と正しい値を示さないことがあります。
w
- 返値 Integer
- ウインドウのx方向の幅を示します。WndProcをフックしていない(hookwndproc?==false)と正しい値を示さないことがあります。
h
- 返値 Integer
- ウインドウのy方向の幅を示します。WndProcをフックしていない(hookwndproc?==false)と正しい値を示さないことがあります。
etc
- 代入可能属性 Integer
- 主にウインドウのコントロールIDを表します。
enabled=(bool)
- 引数
- 返値 true/false
- ウインドウがenabledかどうか設定します。
enabled
enabled?
- 返値 true/false
- ウインドウがenabledかどうかを返します。
visible=(bool)
- 引数
- 返値 true/false
- Windowが表示されているかどうかを設定します。
visible?
- 返値 true/false
- Windowが表示されているかどうかを返します。
他のウインドウに隠されているかどうかとは関係ありません。
create
- 返値 self
- ウインドウの実体を作成します。hWndなどの値はこの後有効になります。
自分自身を返します。
close
- 返値 true/false
- ウインドウを破棄します。成功すれば真を、失敗すれば偽を返します。
deleteという別名を持ちます
show(swcode=SW_SHOW)
- 引数
- 返値 true/false
- ウインドウを表示、もしくは非表示にします。
引数はWindowsAPIのShowWindow()に使用するものです。引数無しで呼び出すと
ウインドウを表示します。
top(prevwin)
- 引数
- prevwin : SWin::Window/true/false/nil/Integer
- 返値 self
- ウインドウのZオーダーを引数prevwinで示されるウインドウの次に変えます。
prevwinにはSWin::Window以外の引数を取ることが出来て、
trueで最前面に持ってきます。falseで最背面に持ってきます。
nilはTOPMOST(強制最前面)になっているウインドウのすぐ下に持ってきます。
WinAPIのHWND_***を整数で指定することもできます。(強制最前面は0xffffffffです)
move(x,y,w,h)
- 引数
- x : Integer
- y : Integer
- w : Integer
- h : Integer
- 返値 true/false
- ウインドウの位置とサイズを左上座標(x,y)、幅と高さ(w,h)に設定します。
成功すれば真を失敗すれば偽を返します。
sendMessage(msg,wParam,lParam)
- 引数
- msg : Integer
- wParam : Integer
- lParam : Integer/String
- 返値 Integer
- ウインドウにメッセージを送出します。実体はAPIのSendMessage()です。
戻り値はSendMessage()の戻り値をそのまま返します。
lParamにStringを与えた場合は、その文字列へのポインタをSendMessage()に与えます。
msghandler(msg)
- 引数
- 返値 nil or not
- addEventで追加されたWindowsのメッセージを受けたときにコールバックされる
メソッドです。関数を上書きして使ってください。
nil以外を返したときにはメッセージ本来のデフォルトの動作は行われません。
addEvent(msg)
- 引数
- 返値 Integer
- Windowsシステムがこのウインドウに送るメッセージのうち、
Rubyスクリプトのメッセージハンドラで受けるメッセージを設定します。
複数個設定する場合はこのメソッドを複数回呼びます。
メッセージはmsghandlerメソッドで受けますが、本メソッドでメッセージを
設定しておかないとmsghandlerが呼び出されることはありません。
delEvent(msg)
- 引数
- 返値 true/false
- addEventメソッドで追加したメッセージを削除します。成功した場合は真を返します。
clearEventFilter
- 返値 nil
- addEventメソッドで追加したメッセージをすべて削除します。
eachFilter
- イテレータ
- イテレータの引数
- 返値 Integer
- addEventメソッドで追加したメッセージをすべてyieldするイテレータです。
yieldした数を返します。
capturedEvents
- 返値 Integerの配列
- msghandlerを呼び出すことになるメッセージの一覧を配列に入れて返します。
clientrect
- 返値 Array [x,y,w,h]
- ウインドウのクライアント領域の位置と大きさを返します。
windowrect
- 返値 Array [x,y,w,h]
- ウインドウの領域全体の位置と大きさを返します。
hookwndproc
- 返値 self
- ウインドウをサブクラス化し、Rubyスクリプトでメッセージを受けられるようにします。
classnameを特に設定しなかったウインドウに関しては、元からメッセージを
受けられるようになっているので意味がありません。2度続けて呼び出すと例外を
発生します。
unhookwndproc
- 返値 self
- ウインドウをサブクラス化を解除します
hookedwndproc?
- 返値 true/false
- ウインドウへのメッセージをRubyスクリプトで受けることが出来るかどうかを返します。
classnameを設定しなかったウインドウに関しては常に真を返します。
alive?
- 返値 true/false
- ウインドウが実際に存在するとき真を返します。ウインドウが閉じられた後や
createされる前には偽を返します。
setCapture
- 返値 self
- マウスカーソルをキャプチャします。
releaseCapture
- 返値 self
- キャプチャしたマウスカーソルを解放します。
messageBox(text,title="MessageBox",mbcode=MB_OK)
- 返値 Integer
- メッセージボックスを開きます。WindowsAPIのMessageBoxに相当。MB_OK=0などの
定数をmbcodeに設定します。戻り値はMessageBoxの戻り値です。
setMenu(menu)
- 引数
- 返値 true/false
- menuをウインドウのメニューとしてセットします。成功したかどうかを返します。
refresh(bErase=true)
- 引数
- 返値 self
- ウインドウ全体をInvalidateして再描画されるようにします。
bEraseがfalseの時は背景色でウインドウを消去しません。
dopaint(hdc=self.hdc)
- イテレータ
- イテレータの引数
- 引数
- 返値 true/false
- WM_PAINTへの応答以外で描画系メソッドを使いたいときに使用し、
イテレータの内側は描画系メソッドが使用できます。戻り値として
メソッド呼び出し時にWM_PAINT応答中だったかどうかを返します。
描画系メソッドが使えるかどうかを調べるためにイテレータではなくメソッドとして
使うこともできます。
またHDCが既知の場合は引数としてHDCを与えることにより、それを使用できます。
focus
- 返値 self
- ウインドウにフォーカスをセットします。
focused?
- 返値 true/false
- ウインドウにフォーカスがセットされているかどうかを調べます。
application
- 返値 Module
- 自分の属するSWin::Applicationモジュールを返します。