Giáo trình Lập trình Windows (Phần 1)

MỤC LỤC  
i
 
ii  
iii  
iv  
v
vi  
DANH MỤC HÌNH VẼ  
vii  
 
CHƢƠNG 1  
GIỚI THIỆU VỀ LẬP TRÌNH WINDOWS  
VÀ VISUAL BASIC 6.0  
1.1. Giới thiệu về lập trình Windows  
Khi cấu trúc của Windows đƣợc tạo ra, Microsoft có ý định tạo ra một số lớn các  
chức năng lập trình có giá trị cho mọi chƣơng trình dựa trên nền Windows. Chiến  
thuật này phục vụ hai mục đích, cung cấp ứng dụng Windows một cái nhìn và cảm  
giác nhất quán cũng nhƣ khiến cho ngƣời lập trình khỏi phải sao chép lại các hàm  
mà đã đƣợc mã hóa và debug. Những hàm này đƣợc lƣu trữ trong một dãy các thƣ  
viện liên kết động ( DLL ) và đƣợc biết nhƣ là giao diện lập trình ứng dụng ( API ).  
Từ khi phát triển thành hệ điều hành 32bit, Windows 95 những phiên bản mới đƣợc  
biết đến nhƣ Win32 API. Một vài hàm trong Win32 API thì có giá trị nhƣ những  
lệnh Visual Basic, nhƣng phần lớn thì đƣợc truy cập chỉ bằng cách gọi hàm API.  
Khi nắm rõ bản chất của Windows API để lập trình sâu với hệ thống, ta cũng cần  
hiểu biết sơ bộ về Hệ điều hành Windows cách thức điều khiển của Hệ điều hành  
đối với ứng dụng để có thể can thiệp nhƣ: bổ sung chức năng thậm chí biến đổi nó,  
bắt thực hiện theo hƣớng của mình.  
Các chƣơng trình ứng dụng trong Windows có thể có nhiều cửa sổ phục vụ cho  
nó. Cửa sổ có thể là Form thậm chí là Dialog. Mỗi cửa sổ này đều có một handle  
(cán) để hệ thống nhận biết do chính hệ điều hành Windows tạo ra. Cán cửa sổ này  
là chỉ số duy nhất.  
Hệ điều hành và chƣơng trình ứng dụng đều duy trì các hàng đợi các chỉ lệnh cần  
thực hiện. Mỗi ứng dụng đều có hàng đợi (Message Queue). Khi ngƣời sử dụng ra  
lệnh hoặc có một biến cố, các chƣơng trình điều khiển thiết bị nhập (INPUT) sẽ  
chuyển các thông tin vào thành chỉ lệnh và đặt chỉ lệnh này vào hàng đợi hệ thống  
(System Message Queue). Hệ điều hành lấy lần lƣợt các chỉ lệnh trong hàng đợi hệ  
thống kiểm tra để xác định cửa sổ nào sẽ tiếp nhận thì sẽ đặt vào hàng đợi của nó  
(thread message) một chỉ lệnh tƣơng ứng. Các chƣơng trình ứng dụng căn cứ vào chỉ  
lệnh này để thực hiện cũng nhƣ xử lý chúng.  
Các cửa sổ giống nhƣ một động cơ tự động chạy theo một vòng lặp. Tiếp "nhiên  
liệu" cho các "động cơ" này là hệ điều hành Windows. Hệ điều hành Windows nhận  
các chỉ lệnh (message) từ hàng đợi của hệ điều hành, dùng một hàm dạng API để  
cung cấp chỉ lệnh tới cửa sổ thông qua cán (handle) của cửa sổ. Có nghĩa là bản thân  
trong mỗi cửa sổ luôn có một hàm gọi là WinProc đôi khi gọi là WinMain. Hàm này  
là cốt lõi xử lý của cửa sổ. Trong hàm, nó lặp đi lặp lại liên tục 2 dòng lệnh sau  
1
       
thông qua cấu trúc:  
Do While 0 <>GetMessage (message, 0, 0,0)  
TranslateMessage message  
DispatchMessage message  
Loop  
Trong đó message là chỉ lệnh mà hệ điều hành cung cấp, thông qua cán (handle)  
của cửa sổ. Đƣơng nhiên, nếu chỉ lệnh có giá trị WM_QUIT thì hàm WinProc trong  
cửa sổ chấm dứt vòng lặp. Còn nếu chỉ lệnh message khác giá trị trên, thì 2 dòng  
lệnh trên sẽ thực hiện.  
Cụ thể:  
TranslateMessage message -> Dịch chỉ lệnh thành dạng dữ liệu khác đặt kết quả này  
vào hàng đợi của ứng dụng.  
DispatchMessage message ->Nhận chỉ lệnh từ hàm GetMessage và gửi cho hệ  
thống. Hệ thống sẽ đƣa chỉ lệnh cho ứng dụng.  
Windows có hàng ngàn chỉ lệnh khác nhau đó là các hằng dạng WM_*.  
Một hàm WinProc luôn nhận vào trong nó các biến theo khuôn mẫu sau để xử lý:  
Function WinProc(hwnd as Long, wc as WNDCLASSEX, message as MSG, wParam  
as Long, lparam as Long)  
Nếu hàm WinProc không xử lý các chỉ lệnh, nó phải đƣa trả chỉ lệnh cho hệ điều  
hành xử lý thông qua hàm DefWindowProc. Hàm DefWindowProc gởi lại chỉ lệnh  
WM_CLOSE cho WinProc. Hàm WinProc sẽ lại gởi trả WM_CLOSE cho  
DefWindowProc một lần nữa nhƣ mô tả ở trên.  
Ta có thể tóm lại sơ bộ nhƣ sau:  
Hình 1.1. Cơ chế xử lý chỉ lệnh của Windows  
Các chỉ lệnh đƣa tới ngăn chờ trên thông thƣờng từ các nguồn sau:  
1) Hệ thống đặt vào  
2) Chƣơng trình khác đặt vào  
2
 
3) Chính chƣơng trình của mình đặt vào thông qua các hàm SendMessage() và  
PostMessage().  
Tuy nhiên, nếu chọn sử dụng hàm SendMessage() thì sau khi chỉ lệnh đƣợc  
WinProc lấy ra xử lý thì chƣơng trình mới tiếp tục chạy tiếp lệnh kế sau. Còn nếu  
dùng PostMessage() chỉ có tác dụng đặt chỉ lệnh vào hàng đợi và thực hiện ngay  
lệnh kế tiếp.  
Từ đây ta nhận thấy việc xử lý hệ thống của Windows thông qua cơ chế trên thì  
giản đơn đi rất nhiều.  
1.2. Thƣ viện liên kết động  
Windows cung cấp rất nhiều các hàm gọi dƣới dạng các thƣ viện liên kết động  
(Dynamic Link Libraries - DLL). Các tệp tin DLL này đƣợc biên dịch với C/C++.  
Thế mạnh của DLL:  
Nhất quán: Ngƣời sử dụng ƣa chuộng Windows vì nó không ít thì nhiều có một  
giao diện ngƣời sử dụng phổ biến cho mọi ứng dụng. Ví dụ các hộp thoại thông  
dụng, các menu, thanh công cụ của Office97… Nghĩa là có những đoạn chƣơng  
trình chung để tạo ra chúng.  
Dễ bảo trì: Những thay đổi hoặc bổ sung nếu có sẽ thể hiện trên mọi ứng dụng.  
Tệp tin EXE nhỏ hơn: Do một phần công việc chứa ở nơi khác, và không gắn kết  
“cứng nhắc” nhƣ liên kết tĩnh, kích cỡ tệp tin EXE đƣợc giảm nhỏ.  
DLL là nền tảng của thiết kế Windows. Windows thực chất là tập hợp các DLL  
để các ứng dụng khác nhau có thể dùng chung. Bên trong các DLL này là hàng trăm  
hàm/thủ tục. Ta gọi chúng là Windows API.  
Các API đƣợc tổ chức trong bốn DLL chính của Windows:  
KERNEL32: Là DLL chính, đảm nhiệm quản lý bộ nhớ, thƣc hiện chức năng đa  
nhiệm và những hàm ảnh hƣởng trực tiếp đến hoạt động của Windows.  
USER32: Thƣ viện quản lý Windows. Thƣ viện này chứa các hàm xử lý menu, định  
giờ, truyền tin, tệp tin và nhiều phần không đƣợc hiển thị khác của Windows.  
GDI32: Giao diện thiết bị đồ hoạ (Graphics Device Interface). Thƣ viện này cung  
cấp các hàm vẽ trên màn hình, cũng nhƣ kiểm tra phần biểu mẫu nào cần vẽ lại.  
WINNM: Cung cấp các hàm multimedia để xử lý âm thanh, nhạc, video thời gian  
thực, lấy mẫu, v.v…  
Ta có thể tìm các tệp tin này trong thƣ mục C:\Windows\system. Ngoài ra, còn có  
các DLL nhỏ hơn, cũng đƣợc dùng phổ biến để cung cấp các dịch vụ đặc biệt cho  
ứng dụng.  
3
 
1.3. Windows API  
1.3.1. Gọi API  
Gọi API không khác gì với gọi hàm/ thủ tục trong module của đề án. Ví dụ ta có  
thủ tục:  
Public sub FindText(obiDataControl as Control, SFilename as String)  
„ Code to implement function here  
End sub  
Để gọi thủ tục ta dùng :  
FindText datTitles, “Titles”  
Chỉ có điều API là một thủ tục không chỉ nằm ngoài module mà còn nằm ngoài  
Visual Basic.  
1.3.2. Khai báo một cuộc gọi API:  
Trƣớc khi dùng hàm của DLL, ta cần khai báo hàm đó. Visual Basic cần biết:  
Tên hàm / thủ tục.  
Tệp tin DLL chứa nó.  
Tham số truyền.  
Kiểu dữ liệu truyền về nếu là hàm.  
Khai báo API tƣơng tự khai báo hàm/ thủ tục thông thƣờng. Ta vẫn bắt đầu bằng  
từ khoá Sub/Function, chỉ khác là trƣớc đó phải có từ khoá Declare.  
Ví dụ: Tạo cửa sổ nhấp nháy bằng cách gọi API  
Bƣớc 1. Tạo một project mới  
Bƣớc 2. Đƣa điều khiển định giờ (timer) lên biểu mẫu và gán giá trị cho thuộc tính  
Interval là 10. Nó sẽ gây ra một sự kiện timer mỗi 10 mi-li-giây.  
Bƣớc 3. Nhấn đúp lên điều khiển timer này để mở cửa sổ Code và gõ vào thủ tục:  
Private Sub Timer1_Timer()  
Dim nReturnValue As Integer  
nReturnValue= Flash(Form1.hWnd, True)  
End Sub  
Bƣớc 4. Khai báo hàm Flash trong General - Declarations  
Private Declare Function Flash Lib "User32" Alias "FlashWindow" _  
(ByVal hWnd As Long, ByVal bInvert As Boolean) As Long  
Bƣớc 5. Chạy chƣơng trình. Khi biểu mẫu xuất hiện, tiêu đề của nó nhấp nháy.  
Giải thích: Từ khoá Declare báo Visual Basic biết đây là khai báo một hàm của  
DLL. Sau Declare là từ khoá Sub hay Function, cho biết đây là thủ tục hay hàm. Ta  
chỉ có một trong hai lựa chọn. Từ khoá Lib cho biết tên DLL đang chứa hàm/ thủ  
4
     
tục đó. Ở đây là thƣ viện User32. Từ khoá Alias cho biết tên thực sự của hàm/ thủ  
tục trong thƣ viện. Nó có thể khác với tên ta khai báo trƣớc từ khoá Lib. Cuối cùng  
là khai báo các tham số truyền, cùng với kiểu dữ liệu trả về của hàm. Ở đây tham số  
đƣợc truyền là :  
(ByVal hWnd As Long, ByVal bInvert As Boolean) As Long  
Tham số đầu, hWnd, là “handle”, xác định cửa sổ cần nhấp nháy. Tham số thứ  
hai, bInvert là giá trị Boolean. Nếu bInvert đƣợc truyền vào có giá trị True, thanh  
tiêu đề sẽ nhấp nháy. Để trả về trạng thái đầu, ta phải gọi lại lần nữa, vớI bInvert  
mang giá trị False.  
Sau khi khai báo hàm API, ta có thể gọi API nhƣ một hàm hoặc thủ tục Visual  
Basic thông thƣờng. Gọi Flash là gọi đến API trong DLL, và ta lƣu giá trị trả về  
trong biến nReturnValue.  
Đối với các hàm thông thƣờng, ta có thể không cần sử dụng giá trị trả về của hàm.  
Tuy nhiên, ta vẫn cần chứa giá trị trả về vào một biến dù ta không có ý định sử dụng  
nó. Phần lớn API trả về mã lỗi kiểu số, và ta có thể dùng nó để kiểm tra mọi việc có  
hoạt động chính xác hay không.  
Trong thực tế, bỏ qua giá trị trả về không chỉ là lƣời biếng mà còn thực sự nguy  
hiểm nếu ta đang gọi nhiều API.  
Sử dụng API sai có thể dẫn đến treo Windows, nếu không nói là treo máy. Khi  
làm việc với các API phức tạp, nhƣ những hàm cần cấp phát nhiều vùng nhớ và tài  
nguyên hệ thống ta không nên bỏ qua các giá trị trả về. Vì hàm DLL nằm ngoài ứng  
dụng, chúng tự kiểm tra lỗi ta chỉ biết có sai sót thông qua giá trị trả về.  
1.3.3. Trình duyệt API ( API Text Viewer)  
Đƣợc cung cấp sẵn khi cài Visual Studio 6.0. Khi ta cần tra cứu cú pháp chính  
xác của hàm API, ta dùng API Text Viewer. Để sử dụng API Text Viewer, ta chọn  
Start/All Programs/Microsoft Visual Studio 6.0/Microsoft Visual Studio 6.0  
Tools/API Text Viewer khi đó cửa sổ API Viewer xuất hiện nhƣ sau:  
Hình 1.2. Cửa sổ API Viewer  
5
   
Để tra cứu hàm nào, ta chọn File/Load Text File từ menu hệ thống, chọn tệp tin  
(chẳng hạn Win32API), rồi nhấn Open, khi đó danh sách các hàm API đƣợc khai  
báo trong file văn bản đó đƣợc hiển thị trong mục Available, nhƣ hình sau:  
Hình 1.3. Danh sách hàm trong Win32API  
Kích chuột chọn một hàm trong danh sách (chẳng hạn hàm AddPrinter), rồi nhấn  
nút Add, cú pháp của hàm sẽ đƣợc hiển thị trong mục Selected Items, nhƣ hình sau:  
Hình 1.4. Cú pháp hàm AddPrinter trong cửa sổ API Viewer  
Tuy nhiên, để có thông tin chi tiết hơn nhƣ hàm API làm gì, truyền tham số gì, trả  
về giá trị gì, ta cần có quyển sách tra cứu.  
6
   
Ngoài ra, chƣơng trình này còn cho phép copy nội dung API đến clipboard để dán  
vào chƣơng trình.  
1.4. Liên lạc với các ứng dụng của Windows  
1.4.1. Clipboard  
Clipboard là vùng bộ nhớ đƣợc Windows quản lý cho phép sao chép dữ liệu giữa  
các ứng dụng.Visual Basic cho phép ta điều khiển hệ thống clipboard thông qua đối  
tƣợng Clipboard. Đối tƣợng này có 6 phƣơng thức và không có thuộc tính. Các  
phƣơng thức bao gồm:  
Clear: Xóa dữ liệu khỏi clipboard.  
SetText: Dùng để đặt văn bản vào Clipboard (copy)  
GetText: Dùng để lấy văn bản từ Clipboard (paste)  
SetData: Dùng để đặt hình ảnh vào Clipboard  
GetData: Dùng để lấy hình ảnh từ Clipboard  
1.4.2. Chạy một chương trình của Windows  
Visual Basic cho phép ta chạy một chƣơng trình khác bằng cách sử dụng thủ tục  
Shell  
TaskId = Shell(PathName, [WindowStyle])  
Trong đó PathNane có thể bao gồm một dòng lệnh. WindowStyle là hằng để xác  
định dạng cửa sổ.  
Ví dụ: Để khởi động chƣơng trình NotePad và tải một tệp tin “c:\bootlog.txt” vào  
chƣơng trình, ta viết lời gọi sau:  
Shell "notepad c:\bootlog.txt", vbNormalFocus  
1.5. Giới thiệu Visual Basic 6.0  
Visual Basic 6.0 là một công cụ lập trình trực quan. Khác với các môi trƣờng lập  
trình hƣớng thủ tục, Visual Basic 6.0 là môi trƣờng lập trình hƣớng đối tƣợng. Trong  
môi trƣờng lập trình hƣớng thủ tục, nếu nhƣ ứng dụng (application) đƣợc thiết kế để  
giải quyết một vấn đề lớn, thì lập trình viên có thể chia nhỏ vấn đề lớn đó thành  
nhiều vấn đề nhỏ và viết các hàm/thủ tục để giải quyết riêng từng cái. Còn với lập  
trình hƣớng đối tƣợng, lập trình viên sẽ chia nhỏ vấn đề cần giải quyết thành các đối  
tƣợng. Mỗi đối tƣợng có những đặc điểm, mà ta gọi là thuộc tính (properties) và  
những chức năng riêng biệt mà ta gọi là phƣơng thức (methods). Lập trình viên phải  
đƣa ra các thuộc tính và phƣơng thức mà đối tƣợng cần thể hiện. Phƣơng thức là  
đoạn chƣơng trình chứa trong đối tƣợng, cho đối tƣợng biết cách thức để thực hiện  
một công việc gì đó, phƣơng thức chỉ đƣợc thực hiện khi có lời gọi theo cú pháp:  
7
       
<đối tƣợng>.<phƣơng thức>. Tƣơng tự thuộc tính và phƣơng thức, các đối tƣợng  
còn có một bộ sự kiện (events) khác nhau. Các sự kiện là những phản ứng của đối  
tƣợng, nó xảy ra thƣờng là kết quả của một hành động nào đó, nhƣ di chuyển chuột,  
nhấn nút bàn phím, hoặc gõ vào hộp văn bản, …  
1.5.1. Khởi động Visual Basic 6.0  
Ta có thể khởi động Visual Basic 6.0 theo các cách sau:  
Cách 1: Nhấp trái chuột vào nút Start, chọn Programs, chọn Microsoft Visual Studio  
6.0, chọn Microsoft Visual Basic 6.0  
Hình 1.5. Khởi động Visual Basic 6.0 từ nút Start  
Cách 2: Chọn biểu tƣợng Microsoft Visual Basic 6.0 trên màn hình nền nhấn Enter  
hoặc nhấp đúp chuột  
Hình 1.6. Biểu tƣợng của Visual Basic 6.0 trên màn hình nền  
8
   
1.5.2. Giới thiệu màn hình làm việc  
Sau khi khởi động Visual Basic 6.0 chúng ta đƣợc đƣa vào môi trƣờng phát triển  
tích hợp của Visual Basic (Gọi tắt là IDE- Integrated Development Environment).  
Đây là nơi mà ta có thể tạo ra các chƣơng trình.  
Hình 1.7. Màn hình làm việc của Visual Basic 6.0  
a) Thanh tiêu đề (Title Bar)  
Thanh tiêu đề thể hiện tên của chƣơng trình (project) mặc định là Project1  
b) Thanh thực đơn (Menu Bar)  
Thanh thực đơn xuất hiện ngay dƣới thanh tiêu đề, chứa các tuỳ chọn thực đơn  
cho phép ngƣời sử dụng thao tác với Visual Basic bằng cách chọn các mục chọn đơn  
bằng chuột hoặc phím tắt trên thực đơn để thực hiện.  
c) Thanh công cụ (Tool Bar)  
Thanh công cụ là thanh chứa các lệnh đƣợc thể hiện dƣới dạng biểu tƣợng giúp  
ngƣời sử dụng có thể thi hành một lệnh nhanh hơn.  
9
   
d) Hộp công cụ (ToolBox)  
Hộp công cụ là bảng chứa các điều khiển và ta thiết kế giao diện ngƣời sử dụng  
bằng cách chọn các điều khiển từ hộp công cụ và đƣa chúng vào các biểu mẫu  
(Form).  
Các biểu tƣợng trong hộp công cụ:  
(Pointer - Con trỏ): Dùng để chọn các đối tƣợng sau khi đã tạo ra chúng ở trên  
Form.  
(Picture Box - Hộp hình ảnh): Dùng để hiển thị hình ảnh trên Form.  
(Label - Nhãn): Dùng để hiện một xâu ký tự hay nhãn trên Form.  
(TextBox - Hộp văn bản): Dùng để tạo một hộp văn bản sử dụng cho việc nhập  
hay xuất thông tin trên Form khi chạy chƣơng trình.  
(Frame - Khung): Dùng để tạo một đối tƣợng hình chữ nhật (khung chữ nhật)  
chứa các đối tƣợng khác.  
(CommandButton - Nút lệnh): Dùng để tạo ra một nút nhấn (nút lệnh) đáp ứng  
sự kiện nhấn hoặc nhấn đúp trái chuột khi chạy chƣơng trình.  
(CheckBox - Hộp kiểm): Dùng để tạo nút kiểm cho phép ngƣời sử dụng chƣơng  
trình chọn/bỏ chọn một lựa chọn nào đó khi chạy chƣơng trình. Ngƣời sử dụng có  
thể không chọn hoặc chọn nhiều tuỳ chọn cùng một lúc.  
(Option Button - Nút lựa chọn): Giống nhƣ hộp kiểm (Check Box) nhƣng khi  
chạy chƣơng trình ngƣời sử dụng chỉ đƣợc chọn một trong các nút chọn (Option  
Button).  
(ListBox - Hộp danh sách): Dùng để tạo một hộp liệt kê một danh sách gồm  
nhiều mục và cho phép ngƣời sử dụng lựa chọn.  
(ComboBox - Hộp danh sách xổ xuống): Đây là đối tƣợng điều khiển kết hợp  
giữa TextBox (hộp văn bản) và ListBox (hộp danh sách), dùng để tạo ra một hộp  
danh sách xổ xuống. Khi chạy chƣơng trình, ngƣời sử dụng có thể chọn một mục  
nào đó trong danh sách có sẵn hoặc có thể nhập nội dung bất kỳ vào.  
(Horizontal ScrollBar - Thanh cuốn ngang): Dùng để tạo ra một thanh cuốn  
ngang cho chúng ta chọn một số nguyên khi di chuyển con chạy từ giá trị min đến  
giá trị max.  
(Vertical ScrollBar - Thanh cuốn dọc): Dùng để tạo ra một thanh cuốn dọc cho  
chúng ta chọn một số nguyên khi di chuyển con chạy từ giá trị min đến giá trị max.  
10  
(Timer - Đồng hồ): Dùng để tạo thời gian.  
(Drive ListBox - Hộp danh sách ổ đĩa): Là một ComboBox trong đó liệt kê tên  
các ổ đĩa có trong hệ thống. Khi chạy chƣơng trình, ngƣời sử dụng có thể chọn một  
ổ đĩa nào đó.  
(Directory ListBox - Hộp danh sách thƣ mục): Là hộp danh sách các thƣ mục  
của ổ đĩa hiện hành. Khi chạy chƣơng trình, ngƣời sử dụng có thể chọn một thƣ mục  
nào đó.  
(File ListBox - Hộp danh sách tệp): Là một hộp danh sách liệt kê các tệp trong  
thƣ mục hiện hành. Khi chạy chƣơng trình, ngƣời sử dụng có thể chọn một tệp nào  
đó.  
(Shape- Hộp hình): Dùng để vẽ các hình cơ bản nhƣ hình chữ nhật, hình vuông,  
hình ellipse, hình tròn … lên Form.  
(Line - Đƣờng): Dùng để kẻ một đoạn thẳng trên Form.  
(Image - Hộp hình ảnh): Dùng để hiển thị hình ảnh bitmap trên Form.  
(Data - Dữ liệu): Dùng để tạo khung dữ liệu.  
(OLE - Object Linking and Embeding): Dùng để tạo khung kết nối và nhúng  
các đối tƣợng.  
Một số điều khiển có sẵn trong Visual Basic 6.0 và không thể gỡ bỏ khỏi hộp  
công cụ. Đây là các điều khiển nội tại. Một số điều khiển nằm bên ngoài Visual  
Basic 6.0 và chứa trong các tệp tin có phần mở rộng là.ocx, muốn thêm các điều  
khiển này vào hộp công cụ trên thanh thực đơn ta chọn Project/Components  
(Ctrl+T), sau đó đánh dấu kiểm vào hộp kiểm bên trái tên điều khiển trong một danh  
sách điều khiển và nhấn nút OK, khi đó điều khiển sẽ đƣợc đƣa vào hộp công cụ và  
ta có thể sử dụng nó nhƣ các điều khiển nội tại khác.  
e) Cửa sổ dự án (Project)  
Cửa sổ Project quản lý toàn bộ chƣơng trình (project)  
đang thiết kế. Trong cửa sổ này sẽ liệt kê tên project  
và tất cả các form, các module đang viết trong  
project.  
Hình 1.8. Cửa sổ Project Explorer  
Để xem các đối tƣợng trên một form hoặc một module nào đó, ta nhấp trái chuột  
vào thẻ (tab) có tên View Object (  
).  
11  
 
Để xem cửa sổ viết mã lệnh của form hoặc module nào đó ta có thể chọn thẻ (tab)  
có tên View Code ( ).  
f) Cửa sổ thuộc tính (Properties)  
Cửa sổ thuộc tính cung cấp một số thuộc tính của đối tƣợng hiện hành.  
Hình 1.9. Cửa sổ thuộc tính (Properties)  
Để truy xuất thuộc tính của đối tƣợng ta thực hiện nhƣ sau:  
<đối tƣợng> .<thuộc tính>  
g) Cửa sổ Form Layout  
Cửa sổ Form Layout giúp chúng ta sắp xếp vị trí  
Form khi chạy chƣơng trình. Khi bắt đầu chạy  
chƣơng trình thì Form sẽ nằm ở góc trên bên trái,  
thay vì dùng chuột để kéo Form đến vị trí tuỳ ý ta sử  
dụng cửa sổ Form Layout.  
Hình 1.10. Cửa sổ Form Layout  
Ta đƣa chuột vào Form trong màn hình Form Layout, lúc đó con trỏ có hình mũi  
tên 4 hƣớng. Ta giữ phím trái chuột và rê Form đến vị trí mong muốn và nhả chuột  
ra. Khi chạy chƣơng trình Form sẽ nằm đúng vị trí mong muốn.  
1.6. Các thao tác cơ bản với các đối tƣợng trên Form  
1.6.1. Đưa một đối tượng lên Form  
Có hai cách đƣa đƣa các đối tƣợng vào Form nhƣ sau:  
12  
       
Tải về để xem bản đầy đủ
pdf 110 trang yennguyen 26100 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình Windows (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_lap_trinh_windows_phan_1.pdf