ウインドウ操作
述語名/引数 | (eg:CreateWindow *x *y *w *h *title ) (eg:CreateWindow *x *y *w *h *title *style *show) |
||
要約 | ウインドウを生成します。 | ||
互換性 | Win | ||
解説 | *x *y それぞれウインドウのスクリーン座標のx軸y軸を指定します。 *w *h それぞれウインドウが管理するビットマップの幅と高さを指定します。ウインドウの大きさは、クライアント領域が*w×*hになるようなサイズに設定されます。 *title タイトルバーに表示さ列文字列を指定します。 *style ウインドウのスタイルを指定します。 *show 表示状態を指定します。 *styleにはウインドウのスタイルを指定するシンボルのリストを与えます。指定できるシンボルは以下のとおりです。
*showには表示状態指定するシンボルのリストを与えます。指定できるシンボルは以下のとおりです。
これらのシンボルの詳しい説明は、MSDNを参照してください。 |
以下の例では、固定されたポップアップウインドウを生成します。
(as (test) :
(loadModule "eggraph.dll" *2)
(eg:CreateWindow 10 20 640 480 "Hello!" (WS_POPUP) (SW_SHOW))
(eg:TextOut 250 230 "HELLO!")
(eg:Update)
(loop))
(as (loop):(eg:GetMessage ?)(loop))
述語名/引数 | (eg:DestroyWindow) |
要約 | ウインドウを破棄します。 |
互換性 | Win |
解説 | N/A |
述語名/引数 | (eg:GetScreenSize *w *h) |
要約 | 画面全体の幅と高さを取得します。 |
互換性 | Win |
解説 | N/A |
述語名/引数 | (eg:GetClientSize *w *h) |
要約 | クライアント領域の幅と高さを取得します。 |
互換性 | Win |
解説 | N/A |
述語名/引数 | (eg:GetWindowRect *left *top *w *h) |
要約 | ウインドウ位置と幅と高さを取得します。 |
互換性 | Win |
引数 | *left [out] ウインドウの左上のX座標 *top [out] ウインドウの左上のY座標 *w [out] ウインドウの幅 *h [out] ウインドウの高さ |
成功/失敗 | ウインドウの位置とサイズに関する情報が正しく取得され、各引数に関するマッチングが成功した。 |
解説 | N/A |
述語名/引数 | (eg:EnableWindowScrollBar) |
要約 | ウインドウにスクロールバーを表示します。 |
互換性 | Win |
解説 | eg:CreateWindowで生成したウインドウは内容を外側の大きさに合わせて拡大縮小します。このルールを呼び出すことで内容のサイズは本来のものに固定され、ウインドウのサイズのために全ての内容が表示されないときスクロールバーが出現します。 |
述語名/引数 | (eg:DisableWindowScrollBar) |
要約 | ウインドウのスクロールバーを非表示にします。 |
互換性 | Win |
解説 | eg:EnableWindowScrollBarで指定した設定を解除して、デフォルトの状態に戻します。 |
述語名/引数 | (eg:MoveWindow *x *y *w *h) |
要約 | ウインドウの位置とサイズを指定します。 |
互換性 | Win |
解説 | *xと*yにはスクリーン座標を指定します。*wと*hにはウインドウの幅と高さを指定します。 |
述語名/引数 | (eg:SaveScreen *file) |
要約 | ウインドウの内容をビットマップとしてファイルに保存します。 |
互換性 | Win |
解説 | N/A |
述語名/引数 | (eg:Update) (eg:Update *x *y *w *h) |
要約 | ウインドウを再描画します。 |
互換性 | Win |
解説 | 実際にはウインドウ再描画を要求するメッセージを発行します。 再描画が実際に行われるのはeg:GetMessageかeg:PeekMessageが呼ばれた後です。
前者の形式はウインドウのクライアント領域全てが書き換え対象になります。 |
以下の例では、ウインドウの下部に配置されたボタンが消えないようにeg:Updateで書き換える矩形を指定しています。
例:
(as (test) :(loadModule "eggraph.dll" *2)(test2))
(as (test2):
(eg:CreateWindow 10 20 640 480 "eg:Updateのサンプル")
(eg:CreateButton "test" 200 401 100 50 0 *hw)
(setv COLOR 0)
(eg:Update)
(eg:SetTimer 0 10)
(loop))
(as (loop):(eg:GetMessage *wm)(MH *wm)(loop))
(as (MH (WM_TIMER 0)):(color))
(as (MH ?))
(as (color)(getv COLOR *c)(> *c 255):(setv COLOR 0))
(as (color)(getv COLOR *c):
(:= *c1 (+ *c 1))
(setv COLOR *c1)
(eg:SetBrush *c *c *c)
(eg:Rectangle 0 0 640 400)
(eg:Update 0 0 640 400))