Recht schnell kann man in der Listenansicht die Miniaturansichten Größe festlegen, bei der Größe gibt es auch keine Einschränkungen!Dieses Beispiel demonstriert die Verwendung der ErstelleNeueImageList-Funktion, um eine Imagelist zu erstellen und sie einem Listview-Steuerelement zuzuordnen. Sie können dann Bilder zur Imagelist hinzufügen und im Listview-Steuerelement anzeigen. Beachten Sie, dass das Erstellen und Freigeben der Imagelist, sowie das Hinzufügen von Bildern, in diesem Beispiel nicht vollständig umgesetzt ist, sondern hierfür benötigen Sie weitere Funktionen und Schritte in Ihrer Anwendung. // Diese Funktion erstellt eine neue Imagelist und ordnet sie einem // Listview-Steuerelement (m_hWnd) zu. HIMAGELIST ErstelleNeueImageList(HWND m_hWnd, int cx, int cy) { // Festlegen von Flags für die Konfiguration der Imagelist. UINT uFlags = ILC_COLOR32 | ILC_MASK; // Anzahl der Bilder in der Imagelist. int cImages = 1; // Erstellung der Imagelist mit den angegebenen Breite (cx) und Höhe (cy) // für die Bilder. HIMAGELIST m_hImageList = ImageList_Create(cx, cy, uFlags, cImages, 1); // Zuordnen der erstellten Imagelist zum Listview-Steuerelement (m_hWnd). // Die Konstante LVM_SETIMAGELIST wird verwendet, um die Verknüpfung herzustellen. SendMessage(m_hWnd, LVM_SETIMAGELIST, 0, (LPARAM)m_hImageList); // Die erstellte Imagelist wird zurückgegeben. return m_hImageList; } LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CREATE: // Erstellen des Listview-Steuerelements HWND listViewHandle = CreateWindowEx(0, WC_LISTVIEW, L"", WS_VISIBLE | WS_CHILD | LVS_ICON, 0, 0, 200, 200, hWnd, NULL, GetModuleHandle(NULL), NULL); // Rufen Sie die Funktion ErstelleNeueImageList auf, um eine Imagelist zu erstellen // und sie dem Listview-Steuerelement zuzuordnen. HIMAGELIST imageList = ErstelleNeueImageList(listViewHandle, 16, 16); if (imageList != NULL) { // Hier können Sie die erstellte Imagelist verwenden, um Bilder hinzuzufügen // und anzuzeigen. Nachdem Sie die Arbeit mit der Imagelist beendet haben, // sollten Sie sie freigeben, um Speicherlecks zu vermeiden. Das ist in diesem // Beispiel nicht vollständig umgesetzt. // Ein Beispiel für das Hinzufügen von Bildern: // ImageList_Add(imageList, hBitmap, NULL); } break; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wc = { 0 }; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = L"MyWindowClass"; if (!RegisterClass(&wc)) { return -1; } HWND hWnd = CreateWindow(L"MyWindowClass", L"My Window", WS_OVERLAPPEDWINDOW, 100, 100, 400, 400, NULL, NULL, hInstance, NULL); if (!hWnd) { return -1; } ShowWindow(hWnd, nCmdShow); MSG msg = { 0 }; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } FAQ 8: Aktualisiert am: 1 November 2023 13:13 |