Форум программистов, компьютерный форум CyberForum.ru

Тонкости работы ползунков - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Линия кода 'S':'C' http://www.cyberforum.ru/cpp-beginners/thread465867.html
cho delaet vtorya polovina coda etoi lini (posle ?): (strcmp(prokey1,'No Provider')==0) ? 'S':'C' ili she (strcmp(prokey1,'No Provider')==0) ? 'S':account_no
C++ Где взять RXLib Подскажите где взять RXLib. Несколько раз видел ссылки на www.rxlib.com, но, видимо, я там чего-то не понял. Где сама библиотека. На этом сайте куча всяких ссылок. И все не по делу. Где она там конкретно лежит. http://www.cyberforum.ru/cpp-beginners/thread465855.html
Кто что знает о Artificial Intelligence (Искуственный интеллект)? C++
Тут ктонить знает про Artificial Intelligence (Искуственный интеллект)? есть тут такие кому знакома эта тема???? BOT LINK: http://library.thinkquest.org/2705/
C++ Почему select блокируется? Ответьте, пожалуйста.
Вот строчки: fd_set read_set; timeval to; to.tv_sec=2000;// Зихера? to.tv_usec=2000;// Или тут? do{ FD_ZERO(&read_set); FD_SET(mother_sock,&read_set); int i=select(0,&read_set,NULL,NULL,&to); // Селект блокируется.Есть сильное подозрение, что я неправильно работаю со структурой timeval. Спраки по ней нет нигде.
C++ А существуют ли конвертеры проектов Delphi -> MSVC? http://www.cyberforum.ru/cpp-beginners/thread465830.html
Или хоть нормально работающие pascal -> c++
C++ Как таскать форму по экрану не за её заголовок, а за любое место Как таскать форму по экрану не за её заголовок, а за любое место? подробнее

Показать сообщение отдельно
Bacek
Сообщений: n/a
20.03.2008, 13:37
Эй, парень. А слабо хелп почитать ?

nPos

Contains the current scroll-box position if the scroll-bar code is SB_THUMBPOSITION or SB_THUMBTRACK; otherwise not used. Depending on the initial scroll range, nPos may be negative and should be cast to an int if necessary.

Для остальных кодов можешь узнать текущее положение из GetScrollPos или GetScrollInfo и в зависимости от кода nSBCode самому позиционировать на сколько тебе нравиться. Ты же лучше должен знать, какая у тебя страница и т.п.

Вот типичный мой обработчик:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
void CPMTree::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar*) 
{
    SCROLLINFO si;
    si.cbSize = sizeof(si);
    si.fMask  = SIF_ALL;
 
    GetScrollInfo(SB_VERT, &si, si.fMask);
 
    // Если разность между si.nMin и si.nMax больше 32767, 
    // то надо использовать si.nTrackPos, а если меньше, то можно
    // брать и nPos. А можно и всегда брать только nPos - 
    // как нравится.
    if (si.nMax - si.nMin < 32767)
        si.nTrackPos = nPos;
 
    int nOldValue = si.nPos;
 
    switch(nSBCode)
    {
    case SB_LINEUP:
        if (si.nPos > si.nMin + m_nLineHeight)
            si.nPos -= m_nLineHeight;
        else
            si.nPos = si.nMin;
        break;
    case SB_LINEDOWN:
        if (si.nPos < si.nMax - (int)si.nPage + 1 - m_nLineHeight)
            si.nPos += m_nLineHeight;
        else
            si.nPos = si.nMax - (int)si.nPage + 1;
        break;
    case SB_PAGEUP:
        if (si.nPos > si.nMin + (int)si.nPage)
            si.nPos -= si.nPage;
        else
            si.nPos = si.nMin;
        break;
    case SB_PAGEDOWN:
        si.nPos += si.nPage;
 
        if (si.nPos > si.nMax - (int)si.nPage + 1)
            si.nPos = si.nMax - (int)si.nPage + 1;
        break;
    case SB_THUMBTRACK: 
    case SB_THUMBPOSITION:
        si.nPos = si.nTrackPos;
        break;
    }
 
    if (nOldValue != si.nPos)
    {
      CancelMode();
    
        si.fMask = SIF_POS;
        SetScrollInfo(SB_VERT, &si, TRUE);
        Invalidate();
 
        UpdateTip();
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru