2009-04-07 7 views
9

Ich bin völlig neu zu win32. Ich habe die letzten 48 Stunden daran gearbeitet.Ist es notwendig, InitCommonControlsEx() und InitCommonControls() zu verwenden?

Ich versuche, ein „Gitter“ zu bauen, und ich habe Beispiele für ein List-View-Steuerelement und einen Steuerkopf auf msdn.microsoft.com.

Die erste ruft die InitCommonControls() -Funktion (neben ich lese diese Funktion ist veraltet).

Der zweite ruft die Funktion InitCommonControlsEx() auf.

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 ... 
} 

scheint diese Funktionen comctl32.lib Bibliothek benötigen, sondern laden Sie es ein Chaos.

Außerdem habe ich festgestellt, dass alles funktioniert, wenn ich diese Funktionen entferne. Dann sind sie notwendig?

Vielen Dank!

Antwort

6

Ja, es ist notwendig. Sie müssen die Fensterklassen für diese benutzerdefinierten Steuerelemente registrieren. Odds sind, einige andere Komponente in Ihrem Code lädt sie. Ich bin mir nicht sicher, aber ich denke, wenn Sie Unterstützung für comctl v6 (visuelle Stile XP und höher) in Ihrem Manifest haben, erhalten Sie commctl32.dll automatisch.

Weitere Informationen über InitCommonControlsEx ist here.

Nicht sicher, was Sie meinen, indem Sie comctl32.lib herunterladen, es ist auf jeder Windows-Plattform seit NT 4 und Windows 95 vorhanden, so dass Sie es nicht neu verteilen müssen.

+0

Oh mein Gott! Vielen Dank! Ich habe nicht bemerkt, dass es auf c: \ Programme \ Microsoft SDKs \ Windows \ v6.0A \ Lib war – kiewic

Verwandte Themen