Erstellen eines List-View-Steuerelements
In diesem Thema wird veranschaulicht, wie Sie ein Listenansichtssteuerelement erstellen. Um ein Listenansichtssteuerelement zu erstellen, verwenden Sie die Funktion CreateWindow oder CreateWindowEx und geben die WC_LISTVIEW Fensterklasse an.
Ein Listenansichtssteuerelement kann auch als Teil einer Dialogfeldvorlage erstellt werden. Sie müssen WC_LISTVIEW als Klassennamen angeben. Um ein Listenansichtssteuerelement als Teil einer Dialogfeldvorlage zu verwenden, müssen Sie InitCommonControls oder InitCommonControlsEx aufrufen, bevor Sie eine instance des Dialogfelds erstellen.
Wichtige Informationen
Technologien
Voraussetzungen
- C/C++
- Programmierung der Windows-Benutzeroberfläche
Anweisungen
Registrieren Sie zunächst die Fensterklasse, indem Sie die InitCommonControlsEx-Funktion aufrufen und das ICC_LISTVIEW_CLASSES Bit in der begleitenden INITCOMMONCONTROLSEX-Struktur angeben. Dadurch wird sichergestellt, dass die DLL für allgemeine Steuerelemente geladen wird. Verwenden Sie als Nächstes die Funktion CreateWindow oder CreateWindowEx , und geben Sie die WC_LISTVIEW Fensterklasse an.
Hinweis
Standardmäßig verwendet ein Listenansichtssteuerelement die Schriftart des Symboltitels. Sie können jedoch eine WM_SETFONT Nachricht verwenden, um die Schriftart anzugeben, die für den Text verwendet werden soll. Sie sollten diese Nachricht senden, bevor Sie Elemente einfügen. Das Steuerelement verwendet die Dimensionen der Schriftart, die von der WM_SETFONT Nachricht angegeben wird, um Abstand und Layout zu bestimmen. Sie können auch die Schriftart für jedes Element anpassen. Weitere Informationen finden Sie unter Benutzerdefiniertes Zeichnen.
Im folgenden C++-Codebeispiel wird ein Listenansichtssteuerelement in der Berichtsansicht erstellt.
// CreateListView: Creates a list-view control in report view.
// Returns the handle to the new control
// TO DO: The calling procedure should determine whether the handle is NULL, in case
// of an error in creation.
//
// HINST hInst: The global handle to the application instance.
// HWND hWndParent: The handle to the control's parent window.
//
HWND CreateListView (HWND hwndParent)
{
INITCOMMONCONTROLSEX icex; // Structure for control initialization.
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);
RECT rcClient; // The parent window's client area.
GetClientRect (hwndParent, &rcClient);
// Create the list-view window in report view with label editing enabled.
HWND hWndListView = CreateWindow(WC_LISTVIEW,
L"",
WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
0, 0,
rcClient.right - rcClient.left,
rcClient.bottom - rcClient.top,
hwndParent,
(HMENU)IDM_CODE_SAMPLES,
g_hInst,
NULL);
return (hWndListView);
}
In der Regel ermöglichen Listenansichtsanwendungen dem Benutzer, von einer Ansicht in eine andere zu wechseln.
Das folgende C++-Codebeispiel ändert die Fensterformatvorlage der Listenansicht, wodurch wiederum die Ansicht geändert wird.
// SetView: Sets a list-view's window style to change the view.
// hWndListView: A handle to the list-view control.
// dwView: A value specifying the new view style.
//
VOID SetView(HWND hWndListView, DWORD dwView)
{
// Retrieve the current window style.
DWORD dwStyle = GetWindowLong(hWndListView, GWL_STYLE);
// Set the window style only if the view bits changed.
if ((dwStyle & LVS_TYPEMASK) != dwView)
{
SetWindowLong(hWndListView,
GWL_STYLE,
(dwStyle & ~LVS_TYPEMASK) | dwView);
} // Logical OR'ing of dwView with the result of
} // a bitwise AND between dwStyle and
// the Unary complement of LVS_TYPEMASK.
Zugehörige Themen