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

Ваш аккаунт

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

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

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

вопрос по смене курсора

318
09 мая 2008 года
nof
193 / / 03.04.2006
В одном MFC приложении меняю курсор через SetClassLong()
Курсор меняется, всё ок. Но если навожу его на любой элемент интерфейса (чекбокс, кнопка и тд), он меняется на обычный. Как изменить его ДЛЯ ВСЕХ элементов без редактирования каждого из них в отдельности?
320
09 мая 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: nof
В одном MFC приложении меняю курсор через SetClassLong()
Курсор меняется, всё ок. Но если навожу его на любой элемент интерфейса (чекбокс, кнопка и тд), он меняется на обычный. Как изменить его ДЛЯ ВСЕХ элементов без редактирования каждого из них в отдельности?



Попробуй так.

  1. В Resource добавь новый курсор,я добавил готовый IDC_POINTER_COPY, можешь и свой нарисовать,если не лень.:)
  2. Добавь в класс главного окна переменную HCURSOR m_cursor; и в конструкторе допиши
     
    Код:
    ...
    m_cursor = AfxGetApp()->LoadCursor(IDC_POINTER_COPY);
    ...
  3. Добавь для класса главного окна в Messages - OnSetCursor и напиши там
     
    Код:
    ...
    // TODO: Add your message handler code here and/or call default
        SetCursor(m_cursor);
        return TRUE;
    ...
Всё.При наведении на любой элемент управления курсор не меняется.
318
10 мая 2008 года
nof
193 / / 03.04.2006
Цитата: m_Valery
Попробуй так.
  1. В Resource добавь новый курсор,я добавил готовый IDC_POINTER_COPY, можешь и свой нарисовать,если не лень.:)
  2. Добавь в класс главного окна переменную HCURSOR m_cursor; и в конструкторе допиши
     
    Код:
    ...
    m_cursor = AfxGetApp()->LoadCursor(IDC_POINTER_COPY);
    ...
  3. Добавь для класса главного окна в Messages - OnSetCursor и напиши там
     
    Код:
    ...
    // TODO: Add your message handler code here and/or call default
        SetCursor(m_cursor);
        return TRUE;
    ...
Всё.При наведении на любой элемент управления курсор не меняется.



 
Код:
BOOL CWhateverDialogDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
    SetClassLong(m_hWnd, GCL_HCURSOR, (LONG)bCursor);
    //SetCursor(bCursor);

    return CDialog::OnSetCursor(pWnd, nHitTest, message);
}

Никакого эффекта... даже при наведении на progressbar меняется на дефолтовыйы :/
Я что-то не так сделал?

Пробовал и через SetCursor, и через SetClassLong
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог