home *** CD-ROM | disk | FTP | other *** search
Turbo C Context File | 1991-12-10 | 9.9 KB | 304 lines |
- Turbo C Context File
- WINAPP-2.DEF
- WINAPP-2.C
- *.DEF
- *.CPP
- void *.c
- HdumpWndProc
- RegisterClass
- CreateWindows
- CreateWindow
- CW_USEDEFAULT
- HANDLE
- hInst
- nMaxX
- nxMaxLen
- wndclass
- nMaxX
- *.CPP
- *.DEF
- chdemo
- chself
- lndemo
- lnself
- D:\BORLANDC\INCLUDE\WINDOWS.H
- D:\BORLANDC\INCLUDE\WINDOWS.H
- D:\WINAPP\WHELLO.CPP
- D:\WINAPP\WHELLO.CPP
- D:\WINAPP\WINAPP-2.DEF
- D:\WINAPP\HDUMP.C
- D:\WINAPP\HDUMP.C
- D:\WINAPP\HDUMP.C
- D:\WINAPP\HDUMP.C
- D:\WINAPP\WINAPP-2.H
- D:\WINAPP\WINAPP-2.DEF
- D:\WINAPP\WNDPROC.C
- D:\WINAPP\WNDPROC.C
- D:\WINAPP\WINAPP-2.DEF
- D:\WINAPP\WINAPP-2.C
- D:\WINAPP\WINAPP-2.H
- 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 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 ;
-