home *** CD-ROM | disk | FTP | other *** search
Turbo C Context File | 1991-12-10 | 11.4 KB | 345 lines |
- Turbo C Context File
- WINAPP-5.CPP
- WINAPP-5.DEF
- PROG4-6.CPP
- PROG4-7.CPP
- *.CPP
- D:\WINAPP\*.DEF
- D:\WINAPP\*.C
- D:\WINAPP\*.H
- D:\WINAPP\*.CPP
- void *.c
- pragma
- cplusplus
- NOMINMAX
- cxChar
- cyChar
- cxCaps
- nMaxX
- cxClient
- ScrollWindow
- cyClient
- VScroll
- HScroll
- Buick
- FontSize.cxChar
- FontSize.cyChar
- FontSize.cxCaps
- FontSize.nMaxX
- ScrollWin
- *.DEF
- *.CPP
- chdemo
- chself
- lndemo
- lnself
- D:\WINAPP\WINAPP-2.C
- D:\BORLANDC\INCLUDE\WINDOWS.H
- D:\WINAPP\WINAPP-3.DEF
- D:\WINAPP\WINAPP-4.DEF
- D:\WINAPP\WINAPP-4.CPP
- D:\WINAPP\WINAPP-2.C
- D:\WINAPP\NONAME01.CPP
- P\WINAPP-4.CPP
- D:\BORLANDC\INCLUDE\WINDOWS.H
- D:\WINAPP\WHELLO.CPP
- D:\WINAPP\WINAPP-3.CPP
- D:\WINAPP\WINAPP-4.DEF
- D:\WINAPP\WINAPP-5.CPP
- D:\WINAPP\WINAPP-4.CPP
- D:\WINAPP\WINAPP-5.DEF
- D:\WINAPP\WINAPP-5.CPP
- long FAR PASCAL AppWndProc (HWND hwnd,
- WORD message,
- WORD wParam,
- LONG lParam)
- { HDC hdc ;
- TEXTMETRIC tm ;
- PAINTSTRUCT ps ;
- static short int cxChar, cyChar, cxCaps, nMaxX ;
- static short int cxClient, cyClient ;
- static short int nVScrollMax, nVScrollPos ;
- static short int nHScrollMax, nHScrollPos ;
- short int nVScrollInc, nHScrollInc ;
- short int nBeginLine, nEndLine ;
- short int i,x,y ;
- switch (message)
- { case WM_CREATE :
- hdc = GetDC(hwnd) ;
- GetTextMetrics(hdc,&tm) ;
- cxChar = tm.tmAveCharWidth ;
- cyChar = tm.tmHeight + tm.tmExternalLeading ;
- cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) *cxChar / 2 ;
- ReleaseDC(hwnd,hdc) ;
- nMaxX = 20 * cxCaps + 45 * cxChar ;
- break ;
- case WM_SIZE :
- cxClient = LOWORD(lParam) ;
- cyClient = HIWORD(lParam) ;
- nVScrollMax = max(0, NUMLINE+2-cyClient/cyChar) ;
- nVScrollPos = min(nVScrollMax,nVScrollPos) ;
- SetScrollRange(hwnd, SB_VERT, 0, nVScrollMax, FALSE) ;
- SetScrollPos(hwnd, SB_VERT, nVScrollPos, TRUE) ;
- nHScrollMax = max(0, (nMaxX-cxClient)/cxChar+2) ;
- nHScrollPos = min(nHScrollMax,nHScrollPos) ;
- SetScrollRange(hwnd, SB_HORZ, 0, nHScrollMax, FALSE) ;
- SetScrollPos(hwnd, SB_HORZ, nHScrollPos, TRUE) ;
- break ;
- case WM_VSCROLL :
- switch (wParam)
- { case SB_TOP :
- nVScrollInc = -nVScrollPos ;
- break ;
- case SB_BOTTOM :
- nVScrollInc = nVScrollMax-nVScrollPos ;
- break ;
- case SB_LINEUP :
- nVScrollInc = -1 ;
- break ;
- case SB_LINEDOWN :
- nVScrollInc = 1 ;
- break ;
- case SB_PAGEUP :
- nVScrollInc = min(-1,-cyClient/cyChar) ;
- break ;
- case SB_PAGEDOWN :
- nVScrollInc = max(1,cyClient/cyChar) ;
- break ;
- case SB_THUMBTRACK :
- nVScrollInc = LOWORD(lParam)-nVScrollPos ;
- break ;
- default :
- nVScrollInc = 0 ;
- break ;
- }
- nVScrollInc = min(nVScrollInc , nVScrollMax-nVScrollPos) ;
- nVScrollInc = max(nVScrollInc , -nVScrollPos) ;
- if (nVScrollInc)
- { nVScrollPos += nVScrollInc ;
- ScrollWindow(hwnd, 0, -cyChar*nVScrollInc, NULL, NULL) ;
- SetScrollPos(hwnd, SB_VERT, nVScrollPos, TRUE) ;
- UpdateWindow(hwnd) ;
- }
- break ;
- case WM_HSCROLL :
- switch (wParam)
- { case SB_TOP :
- nHScrollInc = -nHScrollPos ;
- break ;
- case SB_BOTTOM :
- nHScrollInc = nHScrollMax-nHScrollPos ;
- break ;
- case SB_LINEUP :
- nHScrollInc = -1 ;
- break ;
- case SB_LINEDOWN :
- nHScrollInc = 1 ;
- break ;
- case SB_PAGEUP :
- nHScrollInc = min(-1,-cxClient/cxChar) ;
- break ;
- case SB_PAGEDOWN :
- nHScrollInc = max(1,cxClient/cxChar) ;
- break ;
- case SB_THUMBTRACK :
- nHScrollInc = LOWORD(lParam)-nHScrollPos ;
- break ;
- default :
- nHScrollInc = 0 ;
- break ;
- }
- nHScrollInc = min(nHScrollInc , nHScrollMax-nHScrollPos) ;
- nHScrollInc = max(nHScrollInc , -nHScrollPos) ;
- if (nHScrollInc)
- { nHScrollPos += nHScrollInc ;
- ScrollWindow(hwnd, -cxChar*nHScrollInc, 0, NULL, NULL) ;
- SetScrollPos(hwnd, SB_HORZ, nHScrollPos, TRUE) ;
- UpdateWindow(hwnd) ;
- }
- break ;
- case WM_PAINT :
- hdc = BeginPaint(hwnd, &ps) ;
- nBeginLine = max(0,nVScrollPos + ps.rcPaint.top/cyChar - 1) ;
- nEndLine = min(NUMLINE,nVScrollPos + ps.rcPaint.bottom/cyChar) ;
- for (i=nBeginLine ; i<nEndLine ; i++)
- { x = cxChar * (1-nHScrollPos) ;
- y = cyChar * (1-nVScrollPos+i) ;
- TextOut(hdc, x, y,
- WinStruct[i].szStruct,
- lstrlen(WinStruct[i].szStruct)) ;
- TextOut(hdc, x+20*cxCaps, y,
- WinStruct[i].szDescriptor,
- lstrlen(WinStruct[i].szDescriptor)) ;
- }
- EndPaint(hwnd, &ps) ;
- break ;
- case WM_DESTROY :
- PostQuitMessage(0) ;
- break ;
- default :
- return DefWindowProc(hwnd, message, wParam, lParam) ;
- }
- return 0 ;
- long MainWindow::AppWndProc(WORD message, WORD wParam, LONG lParam)
- SetScrollPos(hwnd, SB_VERT, nVScrollPos, TRUE) ;
- #pragma hdrfile "windows.sym"
- #include <windows.h>
- #pragma hdrstop
- #include"winapp-2.h"
- VScroll.Set(SB_VERT) ;
- HScroll.Set(SB_HORZ) ;
- #pragma hdrfile "windows.sym"
- #include <windows.h>
- #pragma hdrstop
- long FAR PASCAL AppWndProc (HWND hwnd,
- WORD message,
- WORD wParam,
- LONG lParam)
- { HDC hdc ;
- TEXTMETRIC tm ;
- PAINTSTRUCT ps ;
- static short int cxChar, cyChar, cxCaps, nMaxX ;
- static short int cxClient, cyClient ;
- static short int nVScrollMax, nVScrollPos ;
- static short int nHScrollMax, nHScrollPos ;
- short int nVScrollInc, nHScrollInc ;
- short int nBeginLine, nEndLine ;
- short int i,x,y ;
- switch (message)
- { case WM_CREATE :
- hdc = GetDC(hwnd) ;
- GetTextMetrics(hdc,&tm) ;
- cxChar = tm.tmAveCharWidth ;
- cyChar = tm.tmHeight + tm.tmExternalLeading ;
- cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) *cxChar / 2 ;
- ReleaseDC(hwnd,hdc) ;
- nMaxX = 20 * cxCaps + 45 * cxChar ;
- break ;
- case WM_SIZE :
- cxClient = LOWORD(lParam) ;
- cyClient = HIWORD(lParam) ;
- nVScrollMax = max(0, NUMLINE+2-cyClient/cyChar) ;
- nVScrollPos = min(nVScrollMax,nVScrollPos) ;
- SetScrollRange(hwnd, SB_VERT, 0, nVScrollMax, FALSE) ;
- SetScrollPos(hwnd, SB_VERT, nVScrollPos, TRUE) ;
- nHScrollMax = max(0, (nMaxX-cxClient)/cxChar+2) ;
- nHScrollPos = min(nHScrollMax,nHScrollPos) ;
- SetScrollRange(hwnd, SB_HORZ, 0, nHScrollMax, FALSE) ;
- SetScrollPos(hwnd, SB_HORZ, nHScrollPos, TRUE) ;
- break ;
- case WM_VSCROLL :
- switch (wParam)
- { case SB_TOP :
- nVScrollInc = -nVScrollPos ;
- break ;
- case SB_BOTTOM :
- nVScrollInc = nVScrollMax-nVScrollPos ;
- break ;
- case SB_LINEUP :
- nVScrollInc = -1 ;
- break ;
- case SB_LINEDOWN :
- nVScrollInc = 1 ;
- break ;
- case SB_PAGEUP :
- nVScrollInc = min(-1,-cyClient/cyChar) ;
- break ;
- case SB_PAGEDOWN :
- nVScrollInc = max(1,cyClient/cyChar) ;
- break ;
- case SB_THUMBTRACK :
- nVScrollInc = LOWORD(lParam)-nVScrollPos ;
- break ;
- default :
- nVScrollInc = 0 ;
- break ;
- }
- nVScrollInc = min(nVScrollInc , nVScrollMax-nVScrollPos) ;
- nVScrollInc = max(nVScrollInc , -nVScrollPos) ;
- if (nVScrollInc)
- { nVScrollPos += nVScrollInc ;
- ScrollWindow(hwnd, 0, -cyChar*nVScrollInc, NULL, NULL) ;
- SetScrollPos(hwnd, SB_VERT, nVScrollPos, TRUE) ;
- UpdateWindow(hwnd) ;
- }
- break ;
- case WM_HSCROLL :
- switch (wParam)
- { case SB_TOP :
- nHScrollInc = -nHScrollPos ;
- break ;
- case SB_BOTTOM :
- nHScrollInc = nHScrollMax-nHScrollPos ;
- break ;
- case SB_LINEUP :
- nHScrollInc = -1 ;
- break ;
- case SB_LINEDOWN :
- nHScrollInc = 1 ;
- break ;
- case SB_PAGEUP :
- nHScrollInc = min(-1,-cxClient/cxChar) ;
- break ;
- case SB_PAGEDOWN :
- nHScrollInc = max(1,cxClient/cxChar) ;
- break ;
- case SB_THUMBTRACK :
- nHScrollInc = LOWORD(lParam)-nHScrollPos ;
- break ;
- default :
- nHScrollInc = 0 ;
- break ;
- }
- nHScrollInc = min(nHScrollInc , nHScrollMax-nHScrollPos) ;
- nHScrollInc = max(nHScrollInc , -nHScrollPos) ;
- if (nHScrollInc)
- { nHScrollPos += nHScrollInc ;
- ScrollWindow(hwnd, -cxChar*nHScrollInc, 0, NULL, NULL) ;
- SetScrollPos(hwnd, SB_HORZ, nHScrollPos, TRUE) ;
- UpdateWindow(hwnd) ;
- }
- break ;
- case WM_PAINT :
- hdc = BeginPaint(hwnd, &ps) ;
- nBeginLine = max(0,nVScrollPos + ps.rcPaint.top/cyChar - 1) ;
- nEndLine = min(NUMLINE,nVScrollPos + ps.rcPaint.bottom/cyChar) ;
- for (i=nBeginLine ; i<nEndLine ; i++)
- { x = cxChar * (1-nHScrollPos) ;
- y = cyChar * (1-nVScrollPos+i) ;
- TextOut(hdc, x, y,
- WinStruct[i].szStruct,
- lstrlen(WinStruct[i].szStruct)) ;
- TextOut(hdc, x+20*cxCaps, y,
- WinStruct[i].szDescriptor,
- lstrlen(WinStruct[i].szDescriptor)) ;
- }
- EndPaint(hwnd, &ps) ;
- break ;
- case WM_DESTROY :
- PostQuitMessage(0) ;
- break ;
- default :
- return DefWindowProc(hwnd, message, wParam, lParam) ;
- }
- return 0 ;
- long MainWindow::AppWndProc(WORD message, WORD wParam, LONG lParam)
- #define min(a,b) (((a) < (b)) ? (a) : (b))
- #define max(a,b) (((a) > (b)) ? (a) : (b))
- // Turn off warning: Parameter 'lpszCmdLine' is never used in function WinMain(unsigned int,unsigned int,char far*,int)
- #pragma argsused
- // Turn off warning: 'MainWnd' is assigned a value that is never used in function WinMain(unsigned int,unsigned int,char far*,int)
- #pragma option -w-aus
- VScroll.Set_nInc(VScroll.Get_nInc() - VScroll.Get_nPos()) ;
- VScroll.Set_nInc(VScroll.Get_nMax() - VScroll.Get_nPos()) ;
- VScroll.Set_nInc(-1) ;
- VScroll.Set_nInc(-1) ;
- VScroll.Set_nInc(min(VScroll.Get_nInc() ,
- VScroll.Get_nMax()-VScroll.Get_nPos()) ) ;
- VScroll.Set_nInc(max(VScroll.Get_nInc() ,
- -VScroll.Get_nPos()) ) ;
- VScroll.Set_nPos(VScroll.Get_nPos() + VScroll.Get_nInc() ) ;
- //nVScrollPos += nVScrollInc ;
- ScrollWindow(hwnd, 0, -FontSize.cyChar*VScroll.Get_nInc(), NULL, NULL) ;
- VScroll.SetPos(TRUE) ;
- Update() ;
-