Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > MS DataGrid во растенуть всю клиентскую часть


Автор: Vik 2.4.2005, 11:34
Создал приложение Single Document с момошью MFC
для работы с БД.
в окно класса CFromView поместил ActiveX компонент MS Data Grid

и у меня возникла проблема как растенуть этот элемент упровления
во всю клиентскую чать.

Пытался с помощью GetDlgItem по ID пролучить CWnd*
и растянуть через SetWindowPos но GetDlgItem возвращает NULL.

Так что надеюсь ктонибудь из опытных подскажет мне как это сделать.

Автор: chipset 2.4.2005, 11:35
Покажи код вызова GetDlgItem пожалуйста.

Автор: Vik 2.4.2005, 13:19
Легко

Код

CWnd* DataGrid;
CRect rect;

DataGrid = GetDlgItem(IDC_DATAGRID1);
if (DataGrid == NULL){
    exit(1):
}
else{
GetClientRect(rect);

DataGrid->SetWindowPos(&wndTop, 0, 0, rect.right - rect.left,
        rect.bottom - rect.top, SWP_SHOWWINDOW);
}


Автор: Vik 5.4.2005, 21:47
Вобщем проблема решена вот так

Код

int CPremisesView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
    if (CRecordView::OnCreate(lpCreateStruct) == -1)
        return -1;
    
    CRect rect;
    
    m_Grid.Create("ÁÄ", 0, rect, this, IDC_DATAGRID);
    
    return 0;
}

void CPremisesView::OnSize(UINT nType, int cx, int cy) 
{
    CRecordView::OnSize(nType, cx, cy);
    
    CRect rect;
    GetClientRect(rect);
    
    m_Grid.SetWindowPos(this, 
                        10, 100, 
                        rect.right - 20, rect.bottom - 110, 
                        SWP_SHOWWINDOW);
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)