|
|
1.1 ! root 1: //+-------------------------------------------------------- ! 2: // File: App.hxx ! 3: // ! 4: // Classes: CController ! 5: // ! 6: // Functions: WinMain ! 7: // WndProc ! 8: // MakeWindowClass ! 9: // AboutDlgProc ! 10: // ! 11: // History: 22-Jan-1993 asmusf created ! 12: //---------------------------------------------------------- ! 13: ! 14: #include <string.h> ! 15: #include "app.h" ! 16: #include "view.hxx" ! 17: #include "grid.hxx" ! 18: #include "box.hxx" ! 19: ! 20: //---------------------------------------------------------- ! 21: // ! 22: // Class Hierarchy for Application --- inheritance ! 23: // (approximate) (x) contains x ! 24: // ! 25: // CGrid ! 26: // | CBlockFrame(CFont) ! 27: // | (CLineGrid) ! 28: // +--CTextGrid(CFont) (CCodeGrid) ! 29: // | | (CCharGrid) ! 30: // | | ! 31: // | +CCharGrid CPage(CFont,CCodeGrid[]) ! 32: // CLineGrid | (CBlockFrame[]) ! 33: // +CCodeGrid ! 34: // CModel(CPage) ! 35: // ! 36: // ! 37: // ! 38: // CCanvas CView ! 39: // | | ! 40: // |-- CPaintCanvas | ! 41: // | CScrollableView ! 42: // |-- CScreenCanvas ! 43: // | ! 44: // +-- CPrintCanvas CPrintRequest ! 45: // ! 46: // ! 47: // CController(CScrollableView, CModel, CBox) ! 48: // ! 49: //---------------------------------------------------------- ! 50: ! 51: #if 0 ! 52: #ifndef WPARAM ! 53: #define WPARAM WORD ! 54: #endif ! 55: #ifndef LPARAM ! 56: #define LPARAM LONG ! 57: #endif ! 58: #endif ! 59: ! 60: // procedures called by Windows ! 61: ! 62: extern "C" { ! 63: ! 64: LRESULT CALLBACK WndProc ! 65: ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); ! 66: ! 67: BOOL CALLBACK AboutDlgProc ! 68: ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); ! 69: ! 70: } ! 71: ! 72: ! 73: // Main function and other functions used in App.cxx ! 74: ! 75: int PASCAL WinMain ! 76: ( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdParam, int cmdShow ); ! 77: ! 78: void MakeWindowClass ( WNDPROC WndProc, LPTSTR szAppName, HINSTANCE hInst ); ! 79: ! 80: ! 81: // ==== Class CWindow ============================= ! 82: ! 83: class CWindow ! 84: { ! 85: public: ! 86: CWindow (): _hwnd(0) {} ! 87: CWindow ( LPTSTR caption, LPTSTR lpszClassName, HINSTANCE hInstance, ! 88: int cx = CW_USEDEFAULT, int cy=CW_USEDEFAULT); ! 89: void Show ( int nCmdShow ) ! 90: { ! 91: ShowWindow ( _hwnd, nCmdShow ); ! 92: UpdateWindow ( _hwnd ); ! 93: } ! 94: operator HWND() { return _hwnd; } ! 95: protected: ! 96: HWND _hwnd; ! 97: }; ! 98: ! 99: inline CWindow::CWindow(LPTSTR caption, LPTSTR lpszClassName, HINSTANCE hInstance, ! 100: int cx, int cy) ! 101: { ! 102: _hwnd = CreateWindow ( ! 103: lpszClassName, ! 104: caption, ! 105: WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL, ! 106: CW_USEDEFAULT, ! 107: CW_USEDEFAULT, ! 108: cx, ! 109: cy, ! 110: NULL, ! 111: NULL, ! 112: hInstance, ! 113: NULL ); ! 114: } ! 115: ! 116: // ==== Class Controller ========================== ! 117: ! 118: class CController ! 119: { ! 120: public: ! 121: void Init(HWND hwnd); ! 122: ! 123: void Create(HWND hwnd, LPARAM lParam); ! 124: void Destroy(); ! 125: void Size ( LPARAM lParam ); ! 126: void Paint ( HWND hwnd ); ! 127: void Command ( HWND hwnd, WPARAM wParam ); ! 128: void ButtonDown(HWND hwnd, LPARAM lParam ); ! 129: void ButtonUp(HWND hwnd, LPARAM lParam); ! 130: void KeyDown(HWND hwnd, WPARAM wParam, LPARAM lParam); ! 131: void KeyUp(HWND hwnd, WPARAM wParam, LPARAM lParam); ! 132: void VScroll(HWND hwnd, WPARAM wParam, LPARAM lParam); ! 133: void HScroll(HWND hwnd, WPARAM wParam, LPARAM lParam); ! 134: void AlertBox(HWND hwnd, UINT ids, UINT fuStyle); ! 135: ! 136: private: ! 137: void Page(HWND hwnd, WPARAM wParam); ! 138: ! 139: HINSTANCE _hInst; ! 140: DLGPROC _funAbout; ! 141: ! 142: CScrollableView* _pView; ! 143: CModel* _pModel; ! 144: CBox * _pBox; ! 145: }; ! 146: ! 147: ! 148: inline void CController::Paint ( HWND hwnd ) ! 149: { ! 150: CPaintCanvas canvas (hwnd); ! 151: ! 152: _pView->Paint(canvas, _pModel, canvas.GetRect()); ! 153: } ! 154: ! 155:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.