Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Ограничение перемещения окна


Автор: Egoryan 28.1.2008, 12:50
Hi all!

Для ограничения перемещения окна обрабатываю событие WM_WINDOWPOSCHANGING

Что-то вроде этого

dlgrect - диалог мой.
treerect - дерево на которое не должен залезать мой диалог(оно в другом диалоге)
Код


    CRect treerect;
    CRect dlgrect;
    GetWindowRect(&dlgrect);
    temp->pTree.GetWindowRect(&treerect);

    if(dlgrect.left<treerect.right)
    {
        lpwndpos->x=treerect.right;
    }
    if(dlgrect.top<treerect.top) 
    {
        lpwndpos->y=treerect.top;
    }




Проблема в том,что появляются непонятные скачки на границе с этим деревом. диалог спокойно залезает на дерево. Ктонибудь сталкивался с ограничением перемещения окна?

Автор: Andrey44 28.1.2008, 13:17
Попробуй обрабатывать WM_MOVE

Автор: Egoryan 28.1.2008, 13:51
wow,сработало. Непонятно только почему WM_WINDOWPOSCHANGING не совсем корректно работал

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