|
HỒ LÔ BIẾN |
|
TẠO GIAO DIỆN WIN
XP "CHÍNH CỐNG" BẰNG VB 6
PhuongHa (Q6)
|
|
Xin chào bạn! Chắc bạn cũng như tôi và mọi người sử
dụng hệ điều hành Win XP đều phải công nhận rằng nó
vượt trội so với các hệ điều hành Win 9x ở giao diện
đẹp. Các cửa sổ, nút bấm, thanh cuộn, … dường như
nổi lên, trông rất hiện đại. Tuy nhiên, nếu bạn viết
một chương trình bằng Visual Basic 6 (VB 6) thì
những nút bấm, ô nhập liệu (text box),… bạn dùng vẫn
không thay đổi: chúng vẫn mang dáng vẻ "cục mịch"
của Win 9x (mặc dù có đỡ đỡ hơn một chút). |
|
 |
|
Nhìn vào hình 1, bạn thấy các nút bấm và ô nhập liệu
ở hình bên phải đẹp hơn hình bên trái, phải không?
Đó là vì mã nguồn của hình bên phải có thêm chút
“mắm muối” để sử dụng triệt để phong cách của Win
XP. Tui không phải là “chiên gia” lập trình nhưng
thấy cái mẹo này hay hay (tui "chíp" được trên mạng,
hổng phải tác giả nhưng có sửa lại một ít sai sót)
nên mạo muội gởi đến bạn đọc e-CHÍP. Nào, nói hổng
hay bằng làm, ta hãy thử viết một ứng dụng nho nhỏ
để minh họa. Ứng dụng của ta gồm một ô nhập liệu và
các nút bấm Display, Clear, Exit (hình 1). Khi bấm
nút Display, câu chào xuất hiện ở ô nhập liệu. Nút
bấm Clear để xóa câu chào. Nút bấm Exit dĩ nhiên
dùng để thoát. |
|
Trước tiên, bạn khởi động VB, tạo đề án mới
(Standard EXE), thiết kế các ô nhập liệu và nút bấm
trên biểu mẫu như hướng dẫn ở bảng 1. Thiết kế xong,
bạn viết mã lệnh cho các nút bấm như ở đoạn mã 1.
(Chắc bạn biết rồi, để viết mã lệnh cho nút bấm nào,
bạn bấm kép vào nút bấm đó trên biểu mẫu.) Bạn chú
ý, hàm Form_Initialize() gọi thư viện CommonControls
(comctl32.dll) thông qua hàm InitCommonControls. Ta
gọi hàm này khi khởi động ứng dụng để chắc chắn thư
viện CommonControls được mở. |
|
Form |
Name
Caption |
frmGiaodienXP
Tao giao dien su dung
themes Win XP |
|
Textbox |
Name
Alignment
Font Name
Font Size
ForeColor
Text
MultiLine |
txtDisplay
2-Center
VNI-Times
12
Palette\Xanh dương
Hãy nhấn nút Display
True |
|
Command Button |
Name
Caption |
cmdDisplay
&Display |
|
Command Button |
Name
Caption |
cmdClear
&Clear |
|
Command Button |
Name
Caption |
cmdExit
&Exit |
|
|
Đoạn mã 1 |
|
Option Explicit
Private Declare Function InitCommonControls Lib
“comctl32.dll” () As Long
Private Sub cmdDisplay_Click()
txtDisplay.Text = “Xin chào bạn! Đây là ví dụ tạo giao
diện sử dụng themes Win XP”
End Sub
Private Sub cmdClear_Click()
txtDisplay.Text = “ “
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub Form_Initialize()
InitCommonControls
End Sub |
|
Thế là bạn đã xong… phân nửa. Bạn có thể chạy thử
bằng cách chọn Run | Start hoặc nhấn F5. Bạn thấy
giao diện chưa phải là "XP chính cống", đúng không?
Tuy nhiên, bạn cứ bình tĩnh chọn File | Make
Project1.exe để biên dịch. Bạn nên tạo trước một thư
mục (ví dụ như D:\VDThemesXP) để khi lưu, mọi tập
tin liên quan đến ứng dụng của ta đều vào thư mục
ấy. Xong xuôi, bạn... đóng VB 6 luôn (nói thiệt
đó!). |
|
Và đây là điều cực kỳ quan trọng: ta phải nói với
Win XP rằng ta muốn dùng phiên bản mới của thư viện
comctl32.dll (version 6) thông qua một bản kê khai
(manifest) thuộc dạng XML đặt trong thư mục chứa ứng
dụng (khi bạn chạy ứng dụng, Win XP tự động đọc bản
kê khai ấy). Bạn có thể dùng Notepad để tạo ra bản
kê khai có nội dung như đoạn mã 2. |
|
Đoạn mã 2 |
|
<?xml version="1.0"
encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity processorArchitecture="*"
version="5.1.0.0" type="win32"
name="Microsoft.Windows.Shell.shell32"/>
<description>Windows Shell</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df" language="*"
processorArchitecture="*" />
</dependentAssembly>
</dependency>
</assembly> |
|
Nếu bạn đặt tên tập tin chương trình là
VDThemesXP.exe chẳng hạn thì bản kê khai cần có tên
là VDThemesXP.exe.manifest. Nghĩa là tên bản kê khai
có đuôi là .manifest còn phần trước là tên tập tin
chương trình của bạn. |
|
Hãy chạy lại chương trình của bạn xem! Bạn sẽ phải
ngạc nhiên. Nếu có gì trục trặc, bạn cần xem lại bản
kê khai của mình có gì không đúng so với đoạn mã 2
hay không (dễ sai lắm đó nghen!). Để cho tiện, bạn
nên tải mã nguồn của
chương trình và bản kê khai tại
www.echip.com.vn về
nghiên cứu thêm. Bạn cứ áp dụng cách này cho các
chương trình khác của bạn. Chúc bạn có những chương
trình vừa hay vừa đẹp. |
|
|