CHeaderCtrl обьясните пожалуйста
В MSDN нашёл следующее:
CHeaderCtrl myHeaderCtrl;статическое создание
CHeaderCtrl* pmyHeaderCtrl = new CHeaderCtrl;динамическое создание
Дальше нашёл такой код:
CWnd* pParentWnd;
CHeaderCtrl* pmyHeaderCtrl;
pmyHeaderCtrl->Create(WS_CHILD|WS_VISIBLE|HDS_HORZ,
CRect(10, 10, 600, 50), pParentWnd, 1);
Сама функция мне понятна, а что дальше?
И ещё вопрос:
CWnd* pParentWnd;-с помощью какой функции можно присвоить этому указателю моё окно(текущее или главное).
//myHeaderCtrl - объявлен в класе статически.
CMyDialog::OnCreate(...)
{
....
myHeaderCtrl.Create(WS_CHILD|WS_VISIBLE|HDS_HORZ,
CRect(10, 10, 600, 50), this, 1);
...
}
Дальше - переопределяй поведение контрола(перегружай ф-ции, создавай мессадж мап). При появлении диалога на экране - контрол там уже будет.
И читай мсдн.
[SIZE="3"]BOOL CMyHeaderDlg::Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd)
{
MyHed.Create(WS_CHILD|WS_VISIBLE|HDS_HORZ,CRect(10, 10, 600, 50), pParentWnd, 1);
HDLAYOUT hdl;
WINDOWPOS wpos;
RECT rc;
MyHed.GetClientRect(&rc);
hdl.prc = &rc;
hdl.pwpos = &wpos;
MyHed.Layout(&hdl);
MyHed.SetWindowPos(CWnd::FromHandle(wpos.hwndInsertAfter),wpos.x,wpos.y,wpos.cx,wpos.cy,wpos.flags | SWP_SHOWWINDOW);
CString str;
HDITEM hdi;
hdi.mask = HDI_TEXT | HDI_WIDTH | HDI_FORMAT;
hdi.cxy = 100;
hdi.fmt = HDF_STRING | HDF_CENTER;
for (int i=0;i < 6;i++)
{
str.Format(TEXT("column %d"), i);
hdi.pszText = str.GetBuffer(0);
MyHed.InsertItem(i, &hdi);
}
return CDialog::Create(lpszTemplateName, pParentWnd);
}[/SIZE]
Посмотри что я тебе написал. Потом еще раз.
Что не так?
Что не так?[/QUOTE]
Научись читать то, что тебе пишут.
Спасибо за помощь!!!:)
Неужели так трудно было это сказать!!!?
Гы. Это чтоб в следующий раз был внимательным.
я думал получится что вроде таблицы как StringGrid в c++ Builder
Подскажи как это сделать?
Эта хрень превосходит TStringGrid раз в десять!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!