Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как передвинуть кнопку мышкой? MFC

14K
13 января 2008 года
2504
33 / / 27.03.2007
Нужно курсором перетаскивать кнопки. Как это сделать?
320
15 января 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: 2504
Нужно курсором перетаскивать кнопки. Как это сделать?


Очень просто.Создай свой класс кнопки.Добавь следующие функции и переменные.

Код:
class CMyButton : public CButton
{
   ...
         afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
    afx_msg void OnMouseMove(UINT nFlags, CPoint point);
    BOOL mMoving;
    CPoint m_pt;
}
...
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
    mMoving = true;
    m_pt = point;
    SetCapture();
}

void CMyButton::OnLButtonUp(UINT nFlags, CPoint point)
{
    mMoving=false;
    ReleaseCapture();
}

void CMyButton::OnMouseMove(UINT nFlags, CPoint point)
{
    if (mMoving){
        CRect rect;
        GetWindowRect(&rect);
        GetParent()->ScreenToClient(&rect);
        MapWindowPoints(GetParent(),&point,1);
        m_pt=point;
        MoveWindow(point.x,point.y,rect.Width(),rect.Height(),TRUE);
        GetParent()->UpdateWindow();
    }
}
Далее вытаскивай кнопку из ToolBox и добавь контрол-переменную ей типа не CButton,а CMyButton и все
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог