Khi dùng $WS_EX_MDICHILD cho tham số style mở rộng , thì vị trí cửa sổ là vị trí liên hệ đến vùng client của cửa sổ bố-mẹ parent.. Tham số $WS_EX_LAYERED cho phép có một bức ảnh trong su
Trang 1trên thì có thể thêm vào tham số style các giá trị WS_SIZEBOX hoặc WS_MAXIMIZEBOX
Tuy nhiên, khi sử dụng WS_SIZEBOX thì các style WS_MINIMIZEBOX, WS_CAPTION, WS_POPUP, WS_SYSMENU lại không được thiết lập Cách tốt nhất để tạo nên một hộp thoại có thể resize là
sử dụng WS_OVERLAPPEDWINDOW
Khi dùng $WS_EX_MDICHILD cho tham số style mở rộng , thì vị trí cửa sổ là vị trí liên hệ đến vùng client của cửa sổ bố-mẹ (parent) Tham số
$WS_EX_LAYERED cho phép có một bức ảnh trong suốt bên trên ảnh nền
đã định nghĩa trong cửa sổ parent
Để kết hợp các style do bạn chỉ định với style mặc định, ta sử dụng :
BitOr($GUI_SS_DEFAULT_GUI, newstyle, )
Muốn sử dụng được các hằng số liên quan đến GUICreate, bạn cần gọi
#include <WindowsConstants.au3>
Bảng các style mở rộng (Extended style table)
$WS_EX_ACCEPTFILES
Cho phép một control edit hoặc input được tạo trên GUI có thể nhận được tên của file được kéo và thả vào Control cũng phải
$GUI_DROPACCEPTED bằng hàm GUICtrlSetState Đối vớ các control khác, thông tin của việc drag&drop có thể được truy lại với @GUI_DRAGID,
@GUI_DRAGFILE, @GUIDROPID
$WS_EX_APPWINDOW Yêu cầu cửa sổ luôn nổi ở-trên thanh
taskbar khi nó xuất hiện
$WS_EX_CLIENTEDGE Cửa sổ sẽ được bao với viền bị trũng xuống
(sunken)
Trang 2$WS_EX_CONTEXTHELP
Bao gồm một dấu chấm hỏi ở thanh tiêu đề của cửa sổ Không dùng được với
WS_MINIMIZEBOX
$WS_EX_DLGMODALFRAME
Tạo một cửa sổ có viền lớn gấp đôi bình thường Tùy chọn, cửa sổ có thể được tạo với một thanh tiêu đề bằng cách chỉ định WS_CAPTION trong tham số style
$WS_EX_MDICHILD Tạo một cửa sổ con bên trong cửa sổ bố-mẹ
(simulation not real MDI)
$WS_EX_OVERLAPPEDWINDOW Kết hợp style WS_EX_CLIENTEDGE và
WS_EX_WINDOWEDGE
$WS_EX_STATICEDGE
Tạo một cửa sổ có viền chỉ bằng một phần
ba so với bình thường , style này được sử dụng cho các mục không chấp nhận viêc nhập liệu của người dùng
$WS_EX_TOPMOST
GUI được tạo với style này sẽ luôn ở trên các cửa sổ khác, thậm chí khi GUI không được kích hoạt
$WS_EX_TRANSPARENT
Cửa sổ sẽ xuất hiện trong suốt bởi vì các bit của những cửa sổ liên quan bên dưới đã được vẽ lại
$WS_EX_TOOLWINDOW
Tạo ra một cửa sổ chứa công cụ, ta còn gọi
là floating toolbar (thanh công cụ trôi nổi) Cửa sổ chứa công cụ sẽ có một thanh tiêu
đề và font chữ nhỏ hơn cửa sổ bình thường Cứa sổ này sẽ không xuất hiện trong taskbar hoặc trong hộp thoại khi bạn Alt-Tab Nếu cửa sổ chứa công cụ có một menu
hệ thống, icon của nó sẽ không hiển thị trên thanh tiêu đề Tuy nhiên, bạn có thể ép chúng hiển thị bằng cách gõ phím Alt-Space
$WS_EX_WINDOWEDGE Tạo cửa sổ được bao với viền nổi
$WS_EX_LAYERED Tạo một cửa sổ được xếp thành lớp (layer)
Chú ý rằng cái này không sử dụng được cho
Trang 3các cửa sổ con
Ví dụ 1
Đoạn mã này tạo ra một cửa sổ, trên đó có chứa một label và một button Khi bạn nhấn vào Button sẽ tạo ra một số ngẫu nhiên và hiển thị ở label
#include <GUIConstantsEx.au3>
$gui = GUICreate("Random number", 200, 100) ;tạo gui chính
;tạo nhãn sẽ hiển thị số vừa tạo
$label_num = GUICtrlCreateLabel("000", 20, 20, 160, 30)
;gán label này dùng font Arial, size là 14 GUICtrlSetFont(-1, 14, 400, 0, "Arial")
;tạo nút cấp phát số ngẫu nhiên
$button_gen = GUICtrlCreateButton("Generate random number", 20,
50, 160, 30)
GUISetState() ; hiển thị gui vừa tạo lên màn hình while 1 ; vòng lặp xử lý thông điệp
$msg = GUIGetMsg() ;ghi nhận sự kiện xảy ra trên gui Switch $msg
Case $GUI_EVENT_CLOSE ;nếu nhấn nút Close hoặc Alt-F4 ExitLoop ; thì thoát
Case $button_gen ;nếu nhấn nút cấp phát thì tạo số ngẫu nhiên
$num = Int(Random(-10^9, 10^9))
; gán vào label để hiển thị số vừa cấp phát GUICtrlSetData($label_num, $num) EndSwitch
WEnd
Ví dụ 2
Trang 4Đoạn mã này minh họa việc tạo cửa sổ con có nền trong suốt bằng một ảnh gif
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Example( )
Func Example2()
Local $gui, $background, $pic, $basti_stay, $msg
Local $sFile =
RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\A utoIt v3\AutoIt", "InstallDir") &
"\Examples\GUI\logo4.gif"
$gui = GUICreate("Background", 400, 100)
; background picture
$background = GUICtrlCreatePic(@SystemDir &
"\oobe\images\mslogo.jpg", 0, 0, 400, 100)
GUISetState(@SW_SHOW)
; transparent MDI child window
$pic = GUICreate("", 169, 68, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui)
; transparent pic
$basti_stay = GUICtrlCreatePic($sFile, 0, 0, 169, 68)
GUISetState(@SW_SHOW)
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
EndFunc
GUIDelete
Xóa bỏ một cửa sổ GUI và tất cả các control trên đó
Trang 5GUIDelete ( [winhandle] )
Các tham số
Winhandle [tùy chọn] handle của cửa sổ cần xóa , được trả về từ hàm GUICreate
(mặc định là GUI đã dùng trước đó.)
Trả về
Th
Công : Returns 1
Hỏng : Returns 0
Chú ý
None
GUIGetCursorInfo
Lấy thông tin về vị trí của con trỏ chuột (tính theo cửa sổ GUI)
GUIGetCursorInfo ( [winhandle] )
Các tham số
winhandle [tùy chọn] handle của cửa sổ muốn sử dụng Nếu bỏ quên thì cửa sổ
hiện hành được sử dụng
Giá trị trả về
Th
Công : Trả về một mảng có 5 phần tử , chứa các thông tin sau :
$array[0] = tọa độ X (chiều ngang)
$array[1] = tọa độ Y (chiều dọc)
$array[2] = nút thứ nhất của chuột được nhấn (thường là nút trái , 1 là có
Trang 6nhấn, 0 nếu không nhấn)