ListView_SetExtendedListViewStyleEx(GetDlgItem(m_hWnd, IDC_LIST1), LVS_EX_GRIDLINES, LVS_EX_GRIDLINES);
ListView_SetExtendedListViewStyleEx(GetDlgItem(m_hWnd, IDC_LIST1), LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
LVCOLUMN hCtlListView1Column;
ZeroMemory(&hCtlListView1Column, sizeof(LVCOLUMN));
hCtlListView1Column.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;
hCtlListView1Column.fmt = LVCFMT_LEFT;
hCtlListView1Column.cx = 100;
hCtlListView1Column.pszText = "Column 1";
ListView_InsertColumn(GetDlgItem(m_hWnd, IDC_LIST1), 0, &hCtlListView1Column);
hCtlListView1Column.pszText = "Column 2";
ListView_InsertColumn(GetDlgItem(m_hWnd, IDC_LIST1), 1, &hCtlListView1Column);
Таблица в диалоговом окне.
Для того, чтобы нарисовать табличку в OnOk() сделал так:
Код:
HWND hWnd = ::GetDlgItem(m_hWnd, IDC_LIST1);
DWORD dwStyle=GetWindowLong(hWnd,GWL_STYLE);
SetWindowLong(hWnd,GWL_STYLE,dwStyle|[color=red]LVS_REPORT[/color]);
ListView_SetExtendedListViewStyleEx(hWnd,
LVS_EX_GRIDLINES,LVS_EX_GRIDLINES);
ListView_SetExtendedListViewStyleEx(hWnd,
LVS_EX_FULLROWSELECT,LVS_EX_FULLROWSELECT);
LVCOLUMN hCtlListView1Column;
ZeroMemory(&hCtlListView1Column, sizeof(LVCOLUMN));
hCtlListView1Column.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;
hCtlListView1Column.fmt = LVCFMT_LEFT;
hCtlListView1Column.cx = 100;
hCtlListView1Column.pszText = _T("Column 1");
ListView_InsertColumn(hWnd, 0, &hCtlListView1Column);
hCtlListView1Column.pszText = _T("Column 2");
ListView_InsertColumn(hWnd, 1, &hCtlListView1Column);
DWORD dwStyle=GetWindowLong(hWnd,GWL_STYLE);
SetWindowLong(hWnd,GWL_STYLE,dwStyle|[color=red]LVS_REPORT[/color]);
ListView_SetExtendedListViewStyleEx(hWnd,
LVS_EX_GRIDLINES,LVS_EX_GRIDLINES);
ListView_SetExtendedListViewStyleEx(hWnd,
LVS_EX_FULLROWSELECT,LVS_EX_FULLROWSELECT);
LVCOLUMN hCtlListView1Column;
ZeroMemory(&hCtlListView1Column, sizeof(LVCOLUMN));
hCtlListView1Column.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;
hCtlListView1Column.fmt = LVCFMT_LEFT;
hCtlListView1Column.cx = 100;
hCtlListView1Column.pszText = _T("Column 1");
ListView_InsertColumn(hWnd, 0, &hCtlListView1Column);
hCtlListView1Column.pszText = _T("Column 2");
ListView_InsertColumn(hWnd, 1, &hCtlListView1Column);
Как раскладывают значения по ячейкам?
Код:
//WinApi
HWND hWnd = ::GetDlgItem(m_hWnd, IDC_LIST1);
LV_ITEM item;
item.mask = LVIF_TEXT;
item.iItem = 0;
item.iSubItem = 0;
item.lParam=NULL;
item.pszText = _T("Test 1");
ListView_InsertItem(hWnd,&item);
item.iItem= 0;
item.iSubItem=1;
item.pszText = _T("Test 2");
ListView_SetItem(hWnd,&item);
//или если через CListCtrl (MFC)
m_ListCtrl.InsertItem(0,_T("Test 1"));
m_ListCtrl.SetItemText(0,1,_T("Test 2"));
HWND hWnd = ::GetDlgItem(m_hWnd, IDC_LIST1);
LV_ITEM item;
item.mask = LVIF_TEXT;
item.iItem = 0;
item.iSubItem = 0;
item.lParam=NULL;
item.pszText = _T("Test 1");
ListView_InsertItem(hWnd,&item);
item.iItem= 0;
item.iSubItem=1;
item.pszText = _T("Test 2");
ListView_SetItem(hWnd,&item);
//или если через CListCtrl (MFC)
m_ListCtrl.InsertItem(0,_T("Test 1"));
m_ListCtrl.SetItemText(0,1,_T("Test 2"));
С MFC не получилось. В диалоге класса объявил CListCtrl m_ListCtrl. При вызове
Код:
m_ListCtrl.InsertItem(0,_T("Test 1"));
падаю. Что делаю не так?
Код:
void CControlDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
[color=green]//Связываем переменную m_ListCtrl с контролом[/color]
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
}
{
CDialog::DoDataExchange(pDX);
[color=green]//Связываем переменную m_ListCtrl с контролом[/color]
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
}
Да, REFOT, все заработало.