• Thứ Sáu, 09/01/2004 10:31 (GMT+7)

    Xây dựng ứng dụng với các control chuẩn theo Style của XP bằng C#

    Hệ điều hành Windows XP đã thay đổi một cách rất toàn diện về giao diện người dùng, nhất là ở các control       chuẩn - loại cửa sổ mà ta thường gặp nhất trong Windows (Windows định nghĩa tất cả các control đều là cửa sổ), chúng đã được “trang điểm” đẹp và bắt mắt hơn nhiều so với các thế hệ trước. Hẳn các bạn cũng muốn viết chương trình sử dụng control theo style của XP!

    Cách làm cụ thể để xây dựng ứng dụng sử dụng control chuẩn theo style của XP sẽ tùy thuộc vào bạn sử dụng ngôn ngữ lập trình nào, trong môi trường nào. Trong bài viết này tôi chỉ xin trình bày cách làm với ngôn ngữ C# trong môi trường Visual Studio .NET trên hệ điều hành Windows XP.

    Để bắt đầu, chúng ta tạo một project mới. Trong môi trường Visual Studio .NET, chọn menu : File > New > Project, hộp thoại New Project sẽ xuất hiện, chọn Visual C# Project trong khung Project Types và Windows Application trong khung Templates, trong mục Name và Location gõ vào tên và đường dẫn project mà bạn muốn tạo (Trong ví dụ project Name là “XPStyle”, project Location là “E:\Testing Room\C#”), rồi nhấn OK.

     Khi đó project XPStyle sẽ được tạo ra. Tiếp theo, mở cửa sổ Solution Explorer ra (bằng cách chọn View > Solution Explorer hay nhấn Ctrl+Alt+L), rồi nhấn đúp vào tập tin Form1.cs để hiện cửa sổ thiết kế của form đó. Mở  cửa sổ Toolbox (bằng cách chọn View > Toolbox hay nhấn Ctrl+Alt+X), kéo thả một số các control chuẩn lên Form1, trong ví dụ này Form1 được kéo thả lên một checkBox, một radioButton và một Button.

    Sau đó, nhấn Ctrl+A để chọn hết tất cả 3 control này rồi nhấn phải chuột, chọn Properties, tìm mục FlatStyle trong cửa sổ Properties rồi thay giá trị Standard thành System trong mục này (hình bên).



    Style của các control chuẩn bị khi chưa tạo file mainifest

    Như thế là ta đã có được một chương trình viết bằng C#. Bây giờ ta bắt đầu tiến hành chuyển style của các control chuẩn trong chương trình sang style của Windows XP. Để thực hiện được điều này ta cần phải tạo một tập tin manifest với tên là “TênChươngTrình.exe.manifest” (trong ví dụ này là : “XPStyle.exe.manifest”).Tập tin manifest này tuân theo định dạng của XML, bạn có thể thay chuỗi “CompanyName.ProductName.YourApp” trong nội dung file này thành “TênCôngTy.TênSảnPhẩm.TênỨngDụng” của riêng bạn. Sau đó bạn đặt tập tin này vào cùng thư mục với chương trình của bạn, khi bạn chạy chương trình các control chuẩn sẽ có style của Windows XP.

    Vậy ý nghĩa của file manifest này là gì? Tại sao sau khi để file này chung thư mục với chương trình thì style của các control lại được thay đổi thành style của XP? Lý do là tất cả các ứng dụng chạy trên Windows XP đều có vùng non-client và vùng client. Style của vùng non-client sẽ được quyết định bởi hệ thống, còn style của các control chuẩn trong vùng client sẽ được quy định bởi tập tin ComCtl32.dll. Để các control chuẩn có được style của Windows XP bạn phải sử dụng ComCtl32.dll từ phiên bản 6 trở đi. Không giống với các phiên bản trước, phiên bản 6 của tập tin này không thể phân phối theo chương trình được. Nên cách duy nhất để sử dụng file dll này là phải sử dụng hệ điều hành đi kèm với đó. Windows XP có sẵn cả 2 phiên bản 5 và 6 của file ComCtl32.dll này. Tuy nhiên trong điều kiện bình thường thì các chương trình của chúng ta chỉ sử dụng phiên bản 5. Để cho chương trình sử dụng phiên bản 6, chúng ta phải tạo thêm một file manifest đi kèm với chương trình để báo hiệu việc sử dụng phiên bản 6 của ComCtl32.dll nếu nó tồn tại. Đó chính là ý nghĩa của file manifest mà ta thêm vào.


    Style của các control chuẩn bị khi đã tạo file mainifest

    Như vậy nếu file exe đi chung với một file manifest thì style của các control sẽ được thay đổi thành style của Windows XP. Tuy nhiên, bạn có thể cảm thấy rườm rà vì luôn phải nhớ chép kèm file manifest chung với file exe (nếu không style của các control sẽ quay về dạng classical như trong hình 3). Nhưng không sao, bạn có thể tiến hành ghép file manifest này vào file exe. Cách thực hiện như sau: trong Visual Studio .NET, chọn File > Open > File, chọn tập tin bạn muốn tiến hành ghép file manifest rồi nhấn Open (trong ví dụ này là XPStyle.exe). Cửa sổ XPStyle.exe được mở ra, nhấn phải chuột vào mục XPStyle.exe rồi chọn Add Resource, nhấn Import, sau đó chọn file XPStyle .exe.manifest rồi nhấn Open (nhớ chọn giá trị All Files (*.*) trong mục Files of type, như thế bạn mới có thể thấy được file manifest này). Đặt tên cho resource này là RT_MANIFEST. Sau đó đổi ID của resource này từ 101 thành 1 bằng cách nhấn phải chuột vào mục 101 trong cửa sổ XPStyle.exe rồi chọn Properties, sau đó lưu lại. Như thế bạn đã ghép file manifest vào file exe, và kể từ nay, các control chuẩn trong file exe đó sẽ có style của XP khi chạy trên môi trường có file ComCtl32.dll phiên bản 6 trở nên.

    Hy vọng bài viết này có ích cho các bạn.

    Lâm Vĩ Quốc

    Email : lvquoc@hcm.fpt.vn

     

    Nội dung tập tin XPStyle.exe.manifest

    <?xml version=”1.0' encoding=”UTF-8' standalone=”yes”?>

    <assembly xmlns=”urn:schemas-microsoft-com:asm.v1' manifestVersion=”1.0'>

    <assemblyIdentity

       version=”1.0.0.0'

       processorArchitecture=”X86'

       name=”CompanyName.ProductName.YourApp”

       type=”win32'

    />

    <description>.NET control deployment tool</description>

    <dependency>

       <dependentAssembly>

         <assemblyIdentity

           type=”win32'

           name=”Microsoft.Windows.Common-Controls”

           version=”6.0.0.0'

           processorArchitecture=”X86'

           publicKeyToken=”6595b64144ccf1df”

           language=”*”

         />

       </dependentAssembly>

    </dependency>

    </assembly>

     

    Tạo List dễ dàng với PrintFolder
    Nếucó một số lượng CD khổng lổ, chắc bạn đã từng “đau khổ” khi muốn tìm một phần mềm hay bản nhạc ưa thích trong gia tài này. Xin mách bạn một đồ nghề rất hữu dụng: PrintFolder. Đây là một tiện ích khá tốt để lấy list của đĩa CD hay bất kỳ thư mục nào trong đĩa cứng. Nó rất đáng giá cho những ai đam mê âm nhạc muốn tạo list cho các bài hát mà mình ưa thích. Dung lượng tải xuống chỉ khoảng 72KB, tại địa chỉ  http://tinocheat.topcities.com/soft/prntfol.exe

     

    Tino

    39/3A Đông Kim, Kim Phượng, Gia Kiệm, Thống Nhất, Đồng Nai

    ID: A0210_86