List control в диалоге
Код:
HWND hlist = GetDlgItem (hwnd, IDC_LIST_SERVERS);
hlist = 0 почему-то. Да и запустил Spy++, он мне показывает, что нет этого контрола в диалоге. ЧЯДНТ?
Диалог запущен с помощью DialogBox.
Привожу код полностью.
Код:
#include <windows.h>
#include <TCHAR.h>
#include <commctrl.h>
#include "resource.h"
INT_PTR CALLBACK DialogProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hinst, HINSTANCE, LPSTR, int)
{
DialogBox (hinst, TEXT("MainDlg"), 0, DialogProc);
return 0;
};
INT_PTR CALLBACK DialogProc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
if (msg == WM_INITDIALOG)
{
HWND hlist = GetDlgItem (hwnd, IDC_LIST_SERVERS);
LV_COLUMN col;
col.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
col.fmt = LVCFMT_LEFT;
col.iSubItem = 0;
col.pszText = TEXT("Сервер");
col.cchTextMax = (int)_tcslen (col.pszText);
col.cx = 50;
ListView_InsertColumn (hlist, 0, &col);
return TRUE;
}
else if (msg == WM_CLOSE)
{
EndDialog(hwnd, 1);
return TRUE;
}
return FALSE;
};
#include <TCHAR.h>
#include <commctrl.h>
#include "resource.h"
INT_PTR CALLBACK DialogProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hinst, HINSTANCE, LPSTR, int)
{
DialogBox (hinst, TEXT("MainDlg"), 0, DialogProc);
return 0;
};
INT_PTR CALLBACK DialogProc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
if (msg == WM_INITDIALOG)
{
HWND hlist = GetDlgItem (hwnd, IDC_LIST_SERVERS);
LV_COLUMN col;
col.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
col.fmt = LVCFMT_LEFT;
col.iSubItem = 0;
col.pszText = TEXT("Сервер");
col.cchTextMax = (int)_tcslen (col.pszText);
col.cx = 50;
ListView_InsertColumn (hlist, 0, &col);
return TRUE;
}
else if (msg == WM_CLOSE)
{
EndDialog(hwnd, 1);
return TRUE;
}
return FALSE;
};
А то,что,допустим,до создания диалога контролов нет—не?
Вопрос разрешился путем вызова InitCommonControlsEx(). Вопрос можно закрывать.