Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WM_MOUSEMOVE over Button, pushbutton 
V
    Опции темы
nikkadim
Дата 24.7.2012, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите плз, как получать координаты относительно размеров кнопки, т.е не всего диалога как в коде ниже, а только самой кнопки?

Код

BOOL MyDlg::PreTranslateMessage(MSG* pMsg)
{
    if (WM_KEYFIRST <= pMsg->message && pMsg->message
                <= WM_KEYLAST)
        if (mAccel && ::TranslateAccelerator
            (m_hWnd, mAccel, pMsg))
            return TRUE;


    if (pMsg->message==WM_MOUSEMOVE)
    {
        CRect rBtn;
        GetWindowRect (rBtn);
         if (rBtn.PtInRect (pMsg->pt)){
            int x=LOWORD(pMsg->lParam);
            int y=HIWORD(pMsg->lParam);
            CString c;
            //c.Format(_T("Mouse Move at %d,%d"), pMsg->pt.x, pMsg->pt.y);
            c.Format(_T("Mouse Move at %d,%d"), x, y);
            mTrigger.SetWindowTextW(c);
        }    
    }
    return CDialog::PreTranslateMessage(pMsg);
}


Спасибо!


Вернее так, сейчас этот метод показывает свои координаты над каждой конопкой, а мне надо чтобы он показывла их только лишь над одной. Т.е. как-то проверять хэндл окна контрола(окна) куда направлено сообщение.
Спасибо.


Это сообщение отредактировал(а) nikkadim - 24.7.2012, 21:53
PM MAIL   Вверх
nikkadim
Дата 24.7.2012, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



сделал:
Код

    if (pMsg->message==WM_MOUSEMOVE  )
    {
        CRect rBtn;
        GetWindowRect(rBtn);
        GetDlgItem( IDC_DISPLAYPOS )->GetWindowRect( &rBtn );
         if (rBtn.PtInRect (pMsg->pt)){
             
            int x=LOWORD(pMsg->lParam);
            int y=HIWORD(pMsg->lParam);
            CString c;
            //c.Format(_T("Mouse Move at %d,%d"), pMsg->pt.x, pMsg->pt.y);
            c.Format(_T("X&Y: %dx%d"), x, y);
            mCoordTextBox.SetWindowTextW(c);
            return false;
        }    
    }

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


 




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


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

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