Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функционирование CSpinButtonCtrl 
:(
    Опции темы
OlegIT
Дата 26.9.2006, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не понятно функционирование элемента CSpinButtonCtrl. Нажимаю на верхнюю кнопку несколько раз, счетчик в аргументе функции …::OnDeltaposChnum(…) увеличивается. Затем нажимаю на нижнюю кнопку. Счетчик опять один раз увеличивается на единицу, а потом начинает уменьшаться. Как-то не понятен это «один раз». Почему так? И как сделать так что бы верхняя кнопка только увеличивала значение счётчика, а нижняя только уменьшала?


PM MAIL   Вверх
zkv
Дата 26.9.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



я, простите, не понял, что за счетчик, но спином можно пользоваться, например, так:
Код

void CTestDialogDlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
    // TODO: Add your control notification handler code here
    static int i = 0;
    if(pNMUpDown->iDelta < 0 )
        ++i;
    else
        --i;
    CString mess;
    mess.Format("Current value is %d", i);
    MessageBox( mess );
    *pResult = 0;
}


Это сообщение отредактировал(а) zkv - 26.9.2006, 21:22
PM MAIL   Вверх
OlegIT
Дата 27.9.2006, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Счётчик в той же структуре, что и pNMUpDown->iDelta, это pNMUpDown->iPos. Именно iPos ведёт себя так, как я описал. Скорей всего я сделаю именно так, как Вы рекомендуете, но хочется знать, по какой логике работает это самое iPos.
PM MAIL   Вверх
zkv
Дата 27.9.2006, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



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


 




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


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

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