TrayIcon и курсор мышки, вопрос

Тема в разделе "WASM.BEGINNERS", создана пользователем tagegor, 8 июл 2009.

  1. tagegor

    tagegor New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    54
    Здравствуйте, форумчане. В поисках решения моей проблемы облазил интернет, гуглил, не нашел, обрасчаюсь к вам
    Существует такой код
    Код (Text):
    1. mov note.cbSize,sizeof NOTIFYICONDATA
    2. mov note.uID,IDI_TRAY
    3. mov note.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIP
    4. mov note.uCallbackMessage,WM_SHELLNOTIFY
    5. invoke LoadIcon,NULL,IDI_WINLOGO
    6. mov note.hIcon,eax
    7. invoke lstrcpy,addr note.szTip,addr AppName
    8. invoke Shell_NotifyIcon,NIM_ADD,addr note
    Который на время выполнения программы, сует свою иконку в трей.
    Собственна проблема вот с чем:
    Как сделать LoadIcon, из моего файла ресурсов rsrc.RES, раздел Logo, имя иконки 500
    Пытался разными способами, не смог, не компилит

    2ая проблема
    Я заметил что при использовании команды Sleep, курсор мышки превращается в Часики
    Я использую задержку между перемещением курсора:
    Код (Text):
    1. invoke SetCursorPos, width_mon_up_left, height_mon_up_left
    2. invoke Sleep, 750
    3. invoke SetCursorPos, width_mon_up_right, height_mon_up_right
    Но мне так нельзя, нужно чтобы задержка происходила без каких либо изменений на мышу, подскажите как это реализовать? :)
    Спасибо
     
  2. tagegor

    tagegor New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    54
    с первой частью - разобрался
    Решение:
    Код (Text):
    1. invoke  GetModuleHandle,0
    2. mov       [hinstance],eax
    3. invoke  LoadIcon,eax,500
    4. mov         note.hIcon,eax
    Где 500 - id иконки в ресурсах

    А вот как убрать часики с курсора мышки, я хз :dntknw:
     
  3. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    параметр LoadIcon - хэндл модуля, содержащего ресурс

    Код (Text):
    1. HICON LoadIcon(          HINSTANCE hInstance,
    2.     LPCTSTR lpIconName
    3. );
    твой код:
    Код (Text):
    1. invoke LoadIcon,NULL,IDI_WINLOGO
    у тебя вместо hInstance - NULL, следовательно система грузит лого винды из системных же ресурсов

    грузи свою иконку:
    Код (Text):
    1. invoke LoadIcon,hInstance,500
     
  4. tagegor

    tagegor New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    54
    с первой частью - разобрался :)
    Вы лучше со второй помогите, это важнее :)