Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализовать перемещение окна 
V
    Опции темы
cppGhost
Дата 5.2.2014, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.4.2013

Репутация: нет
Всего: нет



День добрый, пытаюсь реализовать собственное перемещение окна. то есть, пользователь зажал кнопку и ведет мышку. хочется, чтобы окно тоже при этом смещалось вслед за мышкой. вот код onmousemove окна. проблема в том, что окно при этом адски не перерисовывается (получается эффект, когда можно рисовать зависшими окнами). пробовал добавлять invalidate, но не помогало

Код

if(false == m_moveMode)
    {
        __super::OnMouseMove(nFlags, point);        

        return;
    }

    CRect wndRect; GetWindowRect(wndRect);

    wndRect.left += (point.x - m_currentPoint.x);
    wndRect.right += (point.x - m_currentPoint.x);
    wndRect.top += (point.y - m_currentPoint.y);
    wndRect.bottom += (point.y - m_currentPoint.y);

    MoveWindow(wndRect);    
    m_currentPoint = point;    

PM MAIL   Вверх
cppGhost
Дата 6.2.2014, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.4.2013

Репутация: нет
Всего: нет



после долгих поисков, а точнее выбора наиболее удачной формулировки вопроса нашел решение

Код

BEGIN_MSG_MAP(CMainDlg)
    ...
    MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
END_MSG_MAP()

LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
    SendMessage(WM_SYSCOMMAND, SC_MOVE|0x0002);
    return 0;
}


то есть не нужно отлавливать, когда началось перемещение, когда закончилось и точно не надо вручную двигать. может, кому пригодиться
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.