Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка сообщения в list control от scroll, error.. 
:(
    Опции темы
Kotjara
Дата 11.10.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.9.2005
Где: Киев

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



Нужно в list control(стиль Report) обработать сообщение от скрола.
Создаю обработку сообщения LVN_BEGINSCROLL(вернее визард сам создает).

Код

//в карте сообщений
ON_NOTIFY(LVN_BEGINSCROLL, IDC_LIST, OnLvnBeginScrollList)

//обработка сообщения
void CProj_2Dlg::OnLvnBeginScrollList(NMHDR *pNMHDR, LRESULT *pResult)
{
    // This feature requires Internet Explorer 5.5 or greater.
    // The symbol _WIN32_IE must be >= 0x0560.
    LPNMLVSCROLL pStateChanged = reinterpret_cast<LPNMLVSCROLL>(pNMHDR);
    // TODO: Add your control notification handler code here
    *pResult = 0;
}


Но при компиляции вылазят ошибки:
error C2065: 'LVN_BEGINSCROLL' : undeclared identifier
error C2065: 'LPNMLVSCROLL' : undeclared identifier

Подскажите пожалуйста решение этой проблемки.
PM MAIL   Вверх
_hunter
Дата 11.10.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



а чего бы в МСДН-е не гляуть где LVN_BEGINSCROLL и NMLVSCROLL объявлены?

Добавлено @ 12:08 
да и на это:
Цитата

    // This feature requires Internet Explorer 5.5 or greater.
    // The symbol _WIN32_IE must be >= 0x0560.

внимание обратить не помешало бы...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Athlon
Дата 11.10.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 15.1.2006
Где: Украина:: Запорож ье

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



а чем тебя не устраивают WM_HSCROLL и WM_VSCROLL?
PM MAIL ICQ   Вверх
Kotjara
Дата 11.10.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.9.2005
Где: Киев

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



_hunter:
MSDN конечно рулит и google тоже рулит, первым делом там смотрел.

Athlon:
WM_HSCROLL и WM_VSCROLL - сообщения для главного окна, а мне нужно для list control'a.

Скомпилил в VC++ 8 - все ОК, а в VC++ 7 не хочет. smile 
PM MAIL   Вверх
Athlon
Дата 11.10.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 15.1.2006
Где: Украина:: Запорож ье

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



я хотел сказать, что в SETFOCUS/KILLFOCUS можно устанавливать/сбрасывать какой-нибудь флажок, а в WM_HSCROLL или WM_VSCROLL при установленом флажке обрабатывать. Вариант конечно не идеальной,но вполне рабочий.
PM MAIL ICQ   Вверх
_hunter
Дата 11.10.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата(Kotjara @  11.10.2006,  16:57 Найти цитируемый пост)
MSDN конечно рулит

конечно рулит. только смысл влпроса не понятен. особенно учитывая:

Цитата(Kotjara @  11.10.2006,  16:57 Найти цитируемый пост)
первым делом там смотрел.

...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Kotjara
Дата 11.10.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.9.2005
Где: Киев

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



Athlon:
Не совсем понял. Если можно то поподробней.

_hunter:
Я имел ввиду, что если бы я нашел ответ в MSDN, то вопросов бы у меня не было.

Возможно необходимо произвески какие-то настройки в VC++ 7, так как в VC++ 8 компилится нормально?
PM MAIL   Вверх
_hunter
Дата 11.10.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



тогда повторюсь:

Цитата(_hunter @  11.10.2006,  12:02 Найти цитируемый пост)
а чего бы в МСДН-е не гляуть где LVN_BEGINSCROLL и NMLVSCROLL объявлены?Добавлено @ 12:08 да и на это:Цитата    // This feature requires Internet Explorer 5.5 or greater.    // The symbol _WIN32_IE must be >= 0x0560.внимание обратить не помешало бы...




--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Athlon
Дата 12.10.2006, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 15.1.2006
Где: Украина:: Запорож ье

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



Я использовал такой подход когда читал значения нескольких ползунков(slider) при изменении значения которых че-то перерисовывал(я тогда учился работать с сообщениями). Там я в SETFOCUS настраивал приемник данных примерно так int *pdata = &slider1_pos, а в OnHScroll читал в приемник значение и делал перерисовку. Возможно в более сложном случае такой подход не сработает. К сожалению та прога потерялась, так что с примером не помогу smile 
PM MAIL ICQ   Вверх
Kotjara
Дата 12.10.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.9.2005
Где: Киев

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



_hunter:

Я же говорю смотрел MSDN, и где обьявлены тоже:
Код

#if (_WIN32_WINNT >= 0x501)
typedef struct tagNMLVSCROLL
{
    NMHDR   hdr;
    int     dx;
    int     dy;
} NMLVSCROLL, *LPNMLVSCROLL;

#define LVN_BEGINSCROLL          (LVN_FIRST-80)          
#define LVN_ENDSCROLL            (LVN_FIRST-81)
#endif


Если знаешь в чем конкретно копать, то подскажи, буду признателен.
PM MAIL   Вверх
_hunter
Дата 12.10.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата(Kotjara @  12.10.2006,  12:13 Найти цитируемый пост)
Я же говорю смотрел MSDN, и где обьявлены тоже:

и соответсвующий заголовок подключил?
и это:
Цитата(Kotjara @  12.10.2006,  12:13 Найти цитируемый пост)
#if (_WIN32_WINNT >= 0x501)

с этим:
Цитата(Kotjara @  11.10.2006,  11:45 Найти цитируемый пост)
    // This feature requires Internet Explorer 5.5 or greater.    // The symbol _WIN32_IE must be >= 0x0560.

учел?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
vinter
Дата 12.10.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



короче поставь в stdafx.h 
Код

#define _WIN32_WINNT 0x0501    
#define _WIN32_IE 0x0560


Это сообщение отредактировал(а) vinter - 12.10.2006, 13:50


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


 




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


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

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