Раздел посвящен программированию с использованием Power Basic.
-
Димитрий
-
- Продвинутый пользователь
-
-
- Сообщения: 194
- Зарегистрирован: 26.01.2005 (Ср) 22:47
- Откуда: Волгоград
-
Димитрий » 27.04.2012 (Пт) 10:50
Прошу совета, как обойти ограничение?
- Код: Выделить всё
CASE %WM_HSCROLL
SELECT CASE LO(WORD, CB.WPARAM)
CASE %SB_THUMBPOSITION, %SB_THUMBTRACK
' This code allows for tracking above the 16-bit limit (65536) of HIWRD
' Proposed by Borje Hagsten
SCROLLBAR SET POS hEdit, %ID_SCRBAR, HI(WORD, CB.WPARAM)
END SELECT
-
Димитрий
-
- Продвинутый пользователь
-
-
- Сообщения: 194
- Зарегистрирован: 26.01.2005 (Ср) 22:47
- Откуда: Волгоград
-
Димитрий » 02.05.2012 (Ср) 9:57
Спасибо DarkMachine.
В итоге код:
- Код: Выделить всё
CALLBACK FUNCTION DialogProcEDIT
STATIC si AS SCROLLINFO
SELECT CASE CB.MSG
CASE %WM_INITDIALOG
si.cbSize = SIZEOF(si)
si.fMask = %SIF_ALL
si.nMin = 1
si.nMax = 100000
si.nPage = 1000
SI.nPos = 1
CONTROL SEND hEdit, %ID_SCRBAR, %SBM_SETSCROLLINFO, %FALSE, VARPTR(si)
CASE %WM_HSCROLL
SELECT CASE LOWRD(CBWPARAM)
si.cbSize = SIZEOF(si)
si.fMask = %SIF_TRACKPOS
CONTROL SEND hEdit, %ID_SCRBAR, %SBM_GETSCROLLINFO, 0, VARPTR(si)
CASE %SB_THUMBPOSITION, %SB_THUMBTRACK
si.nPos = si.nTrackPos
CASE %SB_LINERIGHT
si.nPos = si.nPos + 1
CASE %SB_LINELEFT
si.nPos= si.nPos - 1
CASE %SB_PAGERIGHT
si.nPos=si.nPos + si.nPage
CASE %SB_PAGELEFT
si.nPos=si.nPos - si.nPage
CASE %SB_LEFT
si.nPos = si.nMin
CASE %SB_RIGHT
si.nPos = si.nMax
END SELECT
si.nPos = MAX&(si.nMin, MIN&(si.nPos, si.nMax - si.nPage + 1))
si.fMask = %SIF_POS
CONTROL SEND hEdit, %ID_SCRBAR, %SBM_SETSCROLLINFO, %TRUE, VARPTR(Si)
CONTROL SET TEXT hEdit, %ID_NLAB, STR$(si.nPos)
END SELECT
Вернуться в Power Basic
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15