Aracılığıyla paylaş


Nasıl List-View Denetimi Oluşturulur

Bu konuda liste görünümü denetiminin nasıl oluşturulacağı gösterilmektedir. Liste görünümü denetimi oluşturmak için CreateWindow veya CreateWindowEx işlevlerini kullanır ve WC_LISTVIEW pencere sınıfını belirtirsiniz.

Liste görünümü denetimi, bir iletişim kutusu şablonunun parçası olarak da oluşturulabilir. Sınıf adı olarak WC_LISTVIEW belirtmeniz gerekir. İletişim kutusu şablonunun bir parçası olarak liste görünümü denetimi kullanmak için, iletişim kutusunun bir örneğini oluşturmadan önce InitCommonControls veya InitCommonControlsEx çağırmalısınız.

Bilmeniz gerekenler

Teknolojileri

Önkoşullar

  • C/C++
  • Windows Kullanıcı Arabirimi Geliştirme

Talimatlar

önce InitCommonControlsEx işlevini çağırarak ve eşlik eden INITCOMMONCONTROLSEX yapısında ICC_LISTVIEW_CLASSES bitini belirterek pencere sınıfını kaydedin. Bu, ortak denetim DLL'sinin yüklenmesini sağlar. Ardından CreateWindowveya CreateWindowExişlevinikullanın ve WC_LISTVIEW pencere sınıfını belirtin.

Not

Varsayılan olarak, liste görünümü denetimi simge başlığı yazı tipini kullanır. Ancak, metin için kullanılacak yazı tipini belirtmek için WM_SETFONT bir ileti kullanabilirsiniz. Herhangi bir öğe eklemeden önce bu iletiyi göndermelisiniz. Denetim, aralığı ve düzeni belirlemek için WM_SETFONT iletisi tarafından belirtilen yazı tipinin boyutlarını kullanır. Ayrıca, her öğe için yazı tipini özelleştirebilirsiniz. Daha fazla bilgi için bkz. Özel Çizim.

 

Aşağıdaki C++ kod örneği, rapor görünümünde bir liste görünümü denetimi oluşturur.

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

Liste görünümü uygulamaları genellikle kullanıcının bir görünümden diğerine değişmesini sağlar.

Aşağıdaki C++ kod örneği liste görünümünün pencere stilini değiştirir ve bu da görünümü değiştirir.

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

List-View Kontrol Referansı

List-View Denetimleri hakkında hakkında

List-View Denetimlerini Kullanma