【 WindowRectOp 】
格式:
long WindowRectOp(BSTR Name,
short Action,
long Left, long Top, long Right, long Bottom,
long Colour1, long Colour2)
中文:
long WindowRectOp(迷你視窗名稱,
動作,
左端, 上端, 右端, 下端,
顏色1, 顏色2)
說明:繪製一個矩形邊框,它有相當多的常數可搭配,尤其當動作這個參數
是5的時候,但要畫得好看不太容易。
動作常數:
值│說明 │Lua標記
│1 │由色彩1的單象素寬線條繪製的框架 │miniwin.rect_frame │
│2 │由色彩1填充的實心矩形 │miniwin.rect_fill │
│3 │反轉矩形 - 矩形顏色與迷你視窗底色相反 │miniwin.rect_invert │
│4 │用兩種色彩繪製單象素線條框架 (色彩1為 │ │
│ │上線和左線顏色,色彩2為底線和右線顏色 │ │
│ │) │miniwin.rect_3d_rect │
│5 │繪製邊緣(繪製一個可填充的邊框) │miniwin.rect_draw_edge │
│6 │填滿邊框,不知用法 │miniwin.rect_flood_fill_border │
│7 │填滿面,不知用法 │miniwin.rect_flood_fill_surface │
└─┴───────────────────┴────────────────┘
色彩1可用常數,用來繪製矩形(或填充)。對於動作5(miniwin.rect_draw_edge)
,必須是:
值│說明 │Lua標記
│5 │凸起 │miniwin.rect_edge_raised │
│6 │蝕刻 │miniwin.rect_edge_etched │
│9 │浮起 │miniwin.rect_edge_bump │
│10│下沉 │miniwin.rect_edge_sunken │
└─┴────┴────────────────┘
色彩2可用常數,在動作4 (miniwin.rect_3d_rect) 繪製左側和下側邊緣,
在動作5(miniwin.rect_draw_edge),必須是:
值│說明 │Lua標記
│3 │左上 │miniwin.rect_edge_at_top_left │
│6 │右上 │miniwin.rect_edge_at_top_right │
│9 │左下 │miniwin.rect_edge_at_bottom_left │
│12│右下 │miniwin.rect_edge_at_bottom_right │
│15│矩形 │miniwin.rect_edge_at_all │
└─┴────┴─────────────────┘
對角線
值│說明 │Lua標記
│19│對角線 - 結束於左上 │miniwin.rect_diagonal_end_top_left │
│22│對角線 - 結束於右上 │miniwin.rect_diagonal_end_top_right │
│25│對角線 - 結束於左下 │miniwin.rect_diagonal_end_bottom_left │
│28│對角線 - 結束於右下 │miniwin.rect_diagonal_end_bottom_right│
└─┴──────────┴───────────────────┘
在動作5(miniwin.rect_draw_edge),也可以增加以下值修改繪製的矩形的
行為:
值 │說明 │Lua標記
│0x0800 (2048) │填滿中間 │miniwin.rect_option_fill_middle │
│0x1000 (4096) │柔和的按鈕 │miniwin.rect_option_softer_buttons │
│0x4000 (16384)│扁平而非3D邊框│miniwin.rect_option_flat_borders │
│0x8000 (32768)│單色邊界 │miniwin.rect_option_monochrom_borders │
└───────┴───────┴───────────────────┘
最好的做法,就是用作者提供的範例去做。
範例:
--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--
-- frame
WindowRectOp (win, miniwin.rect_frame, 20, 20, 70, 70,
ColourNameToRGB("blue")) -- outline
-- fill
WindowRectOp (win, miniwin.rect_fill, 50, 20, 80, 80,
ColourNameToRGB("green")) -- filled
-- invert
WindowRectOp (win, miniwin.rect_fill, 50, 20, 80, 80,
ColourNameToRGB("green")) -- draw rectangle
WindowRectOp (win, miniwin.rect_invert, 5, 5, 90, 90,
0) -- invert a larger one
-- 3D style
WindowRectOp (win, miniwin.rect_3d_rect, 50, 30, 70, 70,
ColourNameToRGB("springgreen"), ColourNameToRGB("green"))
-- 3D edge
WindowRectOp (win, miniwin.rect_draw_edge, 30, 30, 70, 70,
miniwin.rect_edge_raised,
miniwin.rect_edge_at_all) -- raised, not filled
-- 3D edge, raised, filled
WindowRectOp (win, miniwin.rect_draw_edge, 30, 30, 70, 70,
miniwin.rect_edge_raised,
miniwin.rect_edge_at_all +
miniwin.rect_option_fill_middle) -- raised, filled
-- 3D edge, raised, filled, soft
WindowRectOp (win, miniwin.rect_draw_edge, 30, 30, 70, 70,
miniwin.rect_edge_raised,
miniwin.rect_edge_at_all +
miniwin.rect_option_fill_middle +
miniwin.rect_option_softer_buttons) -- raised, filled,softer
-- 3D edge, flat, filled
WindowRectOp (win, miniwin.rect_draw_edge, 30, 30, 70, 70,
miniwin.rect_edge_raised,
miniwin.rect_edge_at_all +
miniwin.rect_option_fill_middle +
miniwin.rect_option_softer_buttons +
miniwin.rect_option_flat_borders) -- raised, filled,softer, flat
-- 3D edge, etched, filled
WindowRectOp (win, miniwin.rect_draw_edge, 30, 30, 70, 70,
miniwin.rect_edge_etched,
miniwin.rect_edge_at_all +
miniwin.rect_option_fill_middle) -- etched, filled
--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--
來源:http://www.gammon.com.au/mushclient/mw_shapes.htm#WindowRectOp