簡體   English   中英

如何將項目添加到MFC對話框中的列表控件

[英]How to add items to a List Control in an MFC dialog

為了有一個像這樣的表:

在此處輸入圖片說明
在我的MFC對話框中,我向其中添加了一個List Control 然后使用“ Add Variable向導,為控件創建了此變量:

public:
CListCtrl m_lstIDC_LIST1Control;  

然后在對話框的OnInitDialog函數中,添加了以下代碼行:

// TODO: Add extra initialization here
m_lstIDC_LIST1Control.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_lstIDC_LIST1Control.SetExtendedStyle(LVS_EX_GRIDLINES);
//m_lstIDC_LIST1Control.SetExtendedStyle( LVS_SHOWSELALWAYS);
LVITEM lvItem;

lvItem.mask = LVIF_TEXT;
lvItem.iItem = 0;
lvItem.iSubItem = 0;
char* text = "Sandra C. Anschwitz";
wchar_t wtext[50];
mbstowcs(wtext, text, strlen(text)+1);
LPWSTR ptr = wtext;
lvItem.pszText = ptr;
m_lstIDC_LIST1Control.InsertItem(&lvItem);
UpdateData(false);  

我得到的結果是:

在此處輸入圖片說明
如果我取消注釋:

//m_lstIDC_LIST1Control.SetExtendedStyle( LVS_SHOWSELALWAYS);  

水平網格也不會顯示!
所以有什么問題?
為什么我添加的項目沒有顯示? 為了創建一個如第一張圖所示的表格,我應該怎么做?

首先,請確保您在資源編輯器中選擇了列表控件的“ View屬性的“ Report選項。 我懷疑您使用的不是默認的“ Icon視圖。

然后,您需要添加必填列:

m_lstIDC_LIST1Control.InsertColumn(0, _T("Full Name"), LVCFMT_LEFT, 90);
m_lstIDC_LIST1Control.InsertColumn(1, _T("Profession"), LVCFMT_LEFT, 90);
m_lstIDC_LIST1Control.InsertColumn(2, _T("Fav Sport"), LVCFMT_LEFT, 90);
m_lstIDC_LIST1Control.InsertColumn(3, _T("Hobby"), LVCFMT_LEFT, 90);

最后,您可以簡單地按照以下步驟填充列表項:

int nIndex = m_lstIDC_LIST1Control.InsertItem(0, _T("Sandra C. Anschwitz"));
m_lstIDC_LIST1Control.SetItemText(nIndex, 1, _T("Singer"));
m_lstIDC_LIST1Control.SetItemText(nIndex, 2, _T("Handball"));
m_lstIDC_LIST1Control.SetItemText(nIndex, 3, _T("Beach"));

nIndex = m_lstIDC_LIST1Control.InsertItem(1, _T("Roger A. Miller"));
m_lstIDC_LIST1Control.SetItemText(nIndex, 1, _T("Footballer"));
m_lstIDC_LIST1Control.SetItemText(nIndex, 2, _T("Tennis"));
m_lstIDC_LIST1Control.SetItemText(nIndex, 3, _T("Teaching"));

等等 ....

另外,還要確保您擁有正確的控件類型……您想要(至少在Visual Studio 2008的資源編輯器中)在工具箱(而不是列表框)中稱為列表控件的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM