home *** CD-ROM | disk | FTP | other *** search
Turbo C Context File | 1991-12-10 | 7.5 KB | 226 lines |
- Turbo C Context File
- WMENU-2.RES
- WMENU-3.CPP
- WMENU-3.DEF
- SET.CPP
- INTSET.CPP
- INTSET.HPP
- SETTEST.CPP
- TTEST.CPP
- D:\*.H
- *D:*.H
- C:QUES1.
- D:*.H
- D:*.PRG
- E:*.PRG
- *.CPP
- *.BAK
- void *.c
- Cadillac
- SB_VERT
- defined
- cplusplus
- MAKELONG
- BITMAP
- GetHandle
- GetHAndle
- Buick
- GetHWND
- *.DEF
- *.CPP
- *.RES
- chdemo
- chself
- lndemo
- lnself
- D:\WINAPP\WMENU-2.C
- D:\WINAPP\TEMP.C
- D:\WINAPP\TEMP2.C
- D:\WINAPP\TEMP.C
- D:\WINAPP\WACCEL-2.CPP
- D:\WINAPP\WACCEL-1.C
- D:\WINAPP\WMENU-2.C
- D:\WINAPP\NONAME00.CPP
- D:\WINAPP\WACCEL-1.C
- D:\WINAPP\WACCEL-1.DEF
- D:\WINAPP\WACCEL-2.CPP
- D:\WINAPP\WACCEL-2.DEF
- D:\WINAPP\WMENU-3.DEF
- D:\WINAPP\WMENU-3.DEF
- D:\WINAPP\WMENU-3.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) ;
- #define min(a,b) (((a) < (b)) ? (a) : (b))
- #define min(a,b) (((a) < (b)) ? (a) : (b))
- #define max(a,b) (((a) > (b)) ? (a) : (b))
- #define min(a,b) (((a) < (b)) ? (a) : (b))
- #define max(a,b) (((a) > (b)) ? (a) : (b))
- #define min(a,b) (((a) < (b)) ? (a) : (b))
- #define max(a,b) (((a) > (b)) ? (a) : (b))
- ////////// Base Class -> Window
- //////////
- class Window
- { protected:
- HWND hwnd ;
- public:
- HWND GetHandle(void) // get the window handle in the class
- { return hwnd ; }
- BOOL Show(int nCmdShow)
- { return ShowWindow(hwnd,nCmdShow) ; }
- void Update(void)
- { UpdateWindow(hwnd) ; }
- virtual long AppWndProc(WORD message, WORD wParam, LONG lParam) = 0 ;
- ////////// Derived Class -> MainWindow
- //////////
- class MainWindow : public Window
- { private:
- static char szAppName[8] ;
- public :
- static void Register(void) ;
- MainWindow(void) ;
- long AppWndProc(WORD message, WORD wParam, LONG lParam) ;
- 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) ;
- hAccel = LoadAccelerators(hInstance, szAccelName) ;
-