Come creare un controllo Visualizzazione elenco
In questo argomento viene illustrato come creare un controllo visualizzazione elenco. Per creare un controllo visualizzazione elenco, usare la funzione CreateWindow o CreateWindowEx e specificare la classe della finestra WC_LISTVIEW.
È anche possibile creare un controllo visualizzazione elenco come parte di un modello di finestra di dialogo. È necessario specificare WC_LISTVIEW come nome della classe. Per usare un controllo visualizzazione elenco come parte di un modello di finestra di dialogo, è necessario chiamare InitCommonControls o InitCommonControlsEx prima di creare un'istanza della finestra di dialogo.
Informazioni importanti
Tecnologie
Prerequisiti
- C/C++
- Programmazione dell'interfaccia utente di Windows
Istruzioni
Per prima cosa, registrare la classe window chiamando la funzione InitCommonControlsEx e specificando il bit ICC_LISTVIEW_CLASedizione Standard S nella struttura INITCOMMONCONTROL edizione Standard X associata. In questo modo si garantisce che la DLL dei controlli comuni venga caricata. Successivamente, usare la funzione CreateWindow o CreateWindowEx e specificare la classe della finestra WC_LISTVIEW.
Nota
Per impostazione predefinita, un controllo visualizzazione elenco utilizza il tipo di carattere del titolo dell'icona. Tuttavia, è possibile utilizzare un messaggio WM_edizione Standard TFONT per specificare il tipo di carattere da utilizzare per il testo. È consigliabile inviare questo messaggio prima di inserire elementi. Il controllo utilizza le dimensioni del tipo di carattere specificato dal messaggio WM_edizione Standard TFONT per determinare la spaziatura e il layout. È anche possibile personalizzare il tipo di carattere per ogni elemento. Per altre informazioni, vedere Disegno personalizzato.
Nell'esempio di codice C++ seguente viene creato un controllo visualizzazione elenco nella visualizzazione report.
// 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 genere, le applicazioni di visualizzazione elenco consentono all'utente di passare da una visualizzazione a un'altra.
Nell'esempio di codice C++ seguente viene modificato lo stile della finestra della visualizzazione elenco, che a sua volta modifica la visualizzazione.
// 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.
Argomenti correlati