Tải bản đầy đủ (.pdf) (6 trang)

GIỚI THIỆU VỀ AUTOIT-Lập Trình Trên AutoIT part 17 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (127.38 KB, 6 trang )

trê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)

Style mở rộng

Kết quả

$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
đư
ợc gán trạng thá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).
$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_MAXIMIZEBOX ho
ặc
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
cá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
Đ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 đó
GUIDelete ( [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ó
nh
ấn, 0 nếu không nhấn)


×