Số 51
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.

[Đầu trang]
Trang chủ
Thư ngỏ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Nhóm Frontpage
Cõi người ta
Kim cương doanh nghiệp
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Nuôi hồn Robot
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
Bản quyền VASC Orient, Công ty phát triển phần mềm VASC
99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn