Движение кнопок!

Тема в разделе "C и С++ FAQ", создана пользователем SaleX, 12 дек 2007.

Статус темы:
Закрыта.
  1. SaleX

    SaleX Гость

    Помогите кто может!!!Задача кнопка должна убегать при наведении на нее курсором!!!Подскажите хоть в каком направлении идти!!!Былобы круто еслиб примерчик какойнибуть!!!!
     
  2. Over

    Over Well-Known Member

    Регистрация:
    4 июл 2007
    Сообщения:
    116
    Симпатии:
    0
    Тебе нужно идти в направлении WinAPI. В частности, тебе нужно обрабатывать сообщение WM_MOUSEMOVE. Приведу выдержки из MSDN:
    Обработаешь это сообщение - получишь координаты курсора. Потом их нужно сравнить с координатами кнопки. Если курсор приблизился к кнопке, то делаешь кнопке SendMessage с сообщением WM_MOVE и в lParam указываешь координаты, куда перемещаться. Их можно сгенерить рандомно.
     
  3. gamecreator

    gamecreator Гость

    главное чтобы кнопка за край приложения не убежала <_<
     
  4. Over

    Over Well-Known Member

    Регистрация:
    4 июл 2007
    Сообщения:
    116
    Симпатии:
    0
    2 gamecreator: Если поставить ограничение в рандомной генерации новых координат кнопки, тогда не убежит.
     
  5. KibeRShuriK

    KibeRShuriK Гость

    я работаю только в направлении кухни :p

    для "бегания" кнопки используй функцию

    [codebox]BOOL SetWindowPos( HWND hWnd,
    HWND hWndInsertAfter,
    int X,
    int Y,
    int cx,
    int cy,
    UINT uFlags
    );[/codebox]

    cx и cy - размер кнопки
    X, Y - координаты
    uFlags просто ингорируй(NULL)
    hWnd = окно твоей кнопки

    чтобы получать координаты для дальнейших движений используй метод OnMouseMove()
    и проверку на положение курсора(если его координаты одинаковы с координатами кнопки, то изеняем координаты кнопки, например X+=1 и Y+=1)
    опять же не забудь добавить проверку на корректность координат, а то вообще куда-нибудь вылезет) и тогда будет необработанное исключение


    для компиляции вышенаписанного прекрасно подходит MS VC++
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей