共用方式為


如何建立清單檢視控件

本主題示範如何建立清單檢視控件。 若要建立清單檢視控件,您可以使用 CreateWindow 或 CreateWindowEx 函式,並指定WC_LISTVIEW窗口類別。

清單檢視控件也可以建立為對話框範本的一部分。 您必須將WC_LISTVIEW指定為類別名稱。 若要使用清單檢視控件做為對話框範本的一部分,您必須先呼叫 InitCommonControls 或 InitCommonControlsEx,才能建立對話框的實例。

您需要知道的事項

技術

必要條件

  • C/C++
  • Windows 使用者介面程序設計

指示

先呼叫 InitCommonControlsEx 函式,並在隨附的 INITCOMMONCONTROLSEX 結構中指定ICC_LISTVIEW_CLASSES位,以註冊窗口類別。 這可確保載入通用控制項 DLL。 接下來,使用 CreateWindow 或 CreateWindowEx 函式,並指定WC_LISTVIEW窗口類別。

注意

根據預設,清單檢視控件會使用圖示標題字型。 不過,您可以使用 WM_SETFONT 訊息來指定要用於文字的字型。 您應該先傳送此訊息,再插入任何專案。 控件會使用WM_SETFONT訊息所指定的字型尺寸來判斷間距和版面配置。 您也可以自訂每個專案的字型。 如需詳細資訊,請參閱 自定義繪製

 

下列 C++ 程式代碼範例會在報表檢視中建立清單檢視控件。

// 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);
}

一般而言,清單檢視應用程式可讓使用者從某個檢視變更為另一個檢視。

下列 C++ 程式代碼範例會變更清單檢視的視窗樣式,進而變更檢視。

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

清單檢視控件參考

關於清單檢視控件

使用清單檢視控件