2009-04-07 12 views
9

Tôi hoàn toàn mới đối với win32. Tôi đã làm việc trên nó trong 48 giờ qua.Có cần sử dụng InitCommonControlsEx() và InitCommonControls() không?

Tôi đang cố gắng để xây dựng một "lưới" , và tôi đã nhận ví dụ về một Danh sách-View kiểm soát và một điều khiển Tiêu đề trên msdn.microsoft.com.

Người đầu tiên gọi hàm InitCommonControls() (bên cạnh tôi đọc chức năng này đã lỗi thời).

HWND DoCreateHeader(HWND hwndParent, HINSTANCE hInst) 
{ 
    HWND hwndHeader; 
    RECT rcParent; 
    HDLAYOUT hdl; 
    WINDOWPOS wp; 

    // Ensure that the common control DLL is loaded, and then create 
    // the header control. 
    InitCommonControls(); 

    // ... 

    // hwndHeader = CreateWindowEx(0, WC_HEADER, ... 
} 

Phương thức thứ hai gọi hàm InitCommonControlsEx().

HWND CreateListView (HWND hwndParent, HINSTANCE hInst) 
{  
    RECT rcl; 
    INITCOMMONCONTROLSEX icex; 

    // Ensure that the common control DLL is loaded. 
    icex.dwSize = sizeof(INITCOMMONCONTROLSEX); 
    icex.dwICC = ICC_LISTVIEW_CLASSES; 
    InitCommonControlsEx(&icex); 

    // ... 

    // HWND hWndListView = CreateWindow(WC_LISTVIEW ... 
} 

Dường như các chức năng này cần thư viện comctl32.lib, nhưng tải xuống là một mớ hỗn độn.

Ngoài ra, tôi đã nhận thấy rằng nếu tôi xóa các chức năng này, mọi thứ vẫn hoạt động tốt. Sau đó, chúng có cần thiết không?

Cảm ơn!

Trả lời

6

Có cần thiết. Họ được yêu cầu để có được các lớp cửa sổ cho những điều khiển tùy chỉnh đã đăng ký. Tỷ lệ cược là, một số thành phần khác trong mã của bạn đang tải chúng. Tôi không chắc chắn, nhưng tôi nghĩ rằng nếu bạn có hỗ trợ cho comctl v6 (XP và phong cách trực quan) trong tệp kê khai của bạn, bạn sẽ nhận được commctl32.dll tự động.

Thông tin thêm về những gì InitCommonControlsEx làm là here.

Không chắc chắn ý bạn là gì khi tải xuống comctl32.lib, nó hiện diện trên mọi nền tảng Windows kể từ NT 4 và Windows 95, do đó bạn không cần phải phân phối lại nó.

+0

Ôi trời ơi! Cảm ơn bạn! Tôi chưa nhận thấy nó nằm trên c: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Lib – kiewic

Các vấn đề liên quan