Изменение размера диалогового окна Mfc с встроенным QWinWidget - PullRequest
1 голос
/ 22 августа 2009

Я задал вопрос на форуме qt center, но ответа пока нет.
Надеюсь, кто-то что-то узнает об этом.

У меня есть диалог Mfc с QWinWidget внутри него. Когда я изменяю размер моего диалога, я хочу, чтобы мой QWinWidget автоматически быть изменен и перемещен также. Это код, который создает QWinWidget внутри диалога MFC:

int MyCDialog::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CDialog::OnCreate( lpCreateStruct ) == -1 )
        return -1;
win=new QWinWidget( this->m_hWnd );
    MyFrame * dialog=new MyFrame(win);   
win->move(0,0);     
win->show(); 
return 0;

}

MyFrame является производным от объекта QFrame. Объект QFrame сделан с Qt дизайнером. QFrame назначил макет, который предполагает геометрическое управление дочерними виджетами QFrame.

Вот код, который выполняется, когда я перетаскиваю границу изменения размера моего диалога:

void MyCDailog::OnSize(UINT nType,int cx,int cy)

{

    QObjectList list=win->children();
    QFrame* p=(QFrame*) list.at(0);
    p->resize(QSize(cx,cy));

}

Когда размер диалогового окна изменяется, я вызываю метод изменения размера моего объекта кадра из OnSize, и я ожидал, что после изменения размера кадра , кадр должен изменить размер и поместить свои дочерние виджеты в соответствии с их размер подсказки и размер полиции. Но этого не происходит, по крайней мере, не так, как должно. Что я делаю не так?

...