home *** CD-ROM | disk | FTP | other *** search
- #ifndef CLASS_FRAME
- #define CLASS_FRAME "MakeMDI_Frame"
- // ==========================================================Purpose
- // FRAME.H - Top level application window.
- //
- // MAKEMDI adaptation of Windows 3.1 SDK MAKEAPP system.
- //
- // MDI application design based on Chapter 7 of
- // "Windows 3: A Developer's Guide" by Jeffrey Richter.
- //
- // Adaptation developed with permission of the author by
- // John F. Holliday, Technisoft Corporation
- // Telephone: (515) 472-9803, CompuServe: 71271,634
- //
- // [DMM] 25-Nov-1992: Fixed crashing on exit
- // Also tabified file to tabsize of 4
- //
- // David M. Miller, Business Visions, Inc.
- // Telephone: (212) 747-6118
- // CompuServe: 72676,327
- // internet: dmiller@hera.sbi.com
- // ==========================================================Private
-
- // Window procedure
-
- LRESULT CALLBACK _export Frame_WndProc(HWND, UINT, WPARAM, LPARAM);
-
-
- // Default message handler
-
- #define Frame_DefProc DefWindowProc
-
-
- // Instance data structure
-
- typedef struct tagFRAME {
- HWND hWnd; // Instance window handle.
- HWND hWndClient; // Client window handle.
- HWND hWndActiveMDIChild; // Active MDI child window.
- WORD wNumSheets; // Number of Sheet windows created.
- WORD wNumCharts; // Number of Chart windows created.
- HMENU hMenu; /* Menu used when no MDI children are
- active. */
- DLGPROC fpProcRibbon; // Ribbon dialog procedure address.
- HWND hdlgRibbon; // Ribbon modeless dialog box.
- BOOL fStatusBarOn; // Is the status bar showing?
- BOOL fMDIChildIsMaximized; /* Is the active child
- maximized? */
- HWND hWndMenuHelp; /* Window that last received a
- WM_MENUSELECT message. */
- DWORD dwMenuHelp; /* Menu help code placed here by
- hWndMenuHelp window. */
- } FRAME;
-
-
- // Instance data pointer access functions
-
- #if defined(M_I86SM) || defined(M_I86MM)
- #define Frame_GetPtr(hWnd) (FRAME*)GetWindowWord((hWnd), 0)
- #define Frame_SetPtr(hWnd, pfrm) (FRAME*)SetWindowWord((hWnd), 0, (WORD)(pfrm))
- #else
- #define Frame_GetPtr(hWnd) (FRAME*)GetWindowLong((hWnd), 0)
- #define Frame_SetPtr(hWnd, pfrm) (FRAME*)SetWindowLong((hWnd), 0, (LONG)(pfrm))
- #endif
-
- // Helper macros
-
- #define GETFRAME(hWnd) ((HWND) (GetParent(GetParent(hWnd))))
-
- // Frame message handler macros
-
- #define HANDLE_FW_MDICHILDDESTROY(hWnd, wParam, lParam, fn) \
- ((fn)((hWnd)), 0)
- #define FORWARD_FW_MDICHILDDESTROY(hWnd, fn) \
- (void)(fn)((hWnd), FW_MDICHILDDESTROY, 0, 0L)
-
- #define HANDLE_FW_GETSTATBARRECT(hWnd, wParam, lParam, fn) \
- ((fn)((hWnd), (LPRECT)(LPARAM)(lParam)), 0)
- #define FORWARD_FW_GETSTATBARRECT(hWnd, lpRect, fn) \
- (void)(fn)((hWnd), FW_GETSTATBARRECT, 0, (LPARAM)(LPRECT)(lpRect))
-
- #define HANDLE_FW_DRAWSTATUSDIVIDE(hWnd, wParam, lParam, fn) \
- ((fn)((hWnd), (LPPAINTSTRUCT)(LPARAM)(lParam)), 0)
- #define FORWARD_FW_DRAWSTATUSDIVIDE(hWnd, lps, fn) \
- (void)(fn)((hWnd), FW_DRAWSTATUSDIVIDE, 0, (LPARAM)(LPPAINTSTRUCT)(lps))
-
- #define HANDLE_FW_RESIZEMDICLIENT(hWnd, wParam, lParam, fn) \
- ((fn)((hWnd)), 0)
- #define FORWARD_FW_RESIZEMDICLIENT(hWnd, fn) \
- (void)(fn)((hWnd), FW_RESIZEMDICLIENT, 0, 0L)
-
- #define HANDLE_FW_SETMENUHELP(hWnd, wParam, lParam, fn) \
- ((fn)((hWnd),(HWND)(WPARAM)(wParam),(DWORD)(LPARAM)(lParam)), 0)
- #define FORWARD_FW_SETMENUHELP(hWnd, hWndMenuHelp, dwMenuHelp, fn) \
- (void)(fn)((hWnd), FW_SETMENUHELP, (WPARAM)(HWND)(hWndMenuHelp), \
- (LPARAM)(DWORD)(dwMenuHelp))
-
- #define HANDLE_FW_GETMENUHELP(hWnd, wParam, lParam, fn) \
- (LRESULT)(DWORD)((fn)(hWnd))
- #define FORWARD_FW_GETMENUHELP(hWnd, fn) \
- (DWORD)(fn)((hWnd), FW_GETMENUHELP, 0, 0L)
-
- // Application message handler macros
-
- #define HANDLE_AW_PAINTMENUHELP(hWnd, wParam, lParam, fn) \
- ((fn)((hWnd),(LPPAINTSTRUCT)(LPARAM)(lParam)), 0)
- #define FORWARD_AW_PAINTMENUHELP(hWnd, ps, fn) \
- (void)(fn)((hWnd), AW_PAINTMENUHELP, 0, (LPARAM)(LPPAINTSTRUCT)(ps))
-
- #define HANDLE_AC_PAINTSTATBAR(hWnd, wParam, lParam, fn) \
- ((fn)((hWnd),(HDC)(WPARAM)(wParam),(LPPAINTSTRUCT)(LPARAM)(lParam)), 0)
- #define FORWARD_AC_PAINTSTATBAR(hWnd, hdc, ps, fn) \
- (void)(fn)((hWnd), AC_PAINTSTATBAR, 0, (WPARAM)(HDC)(wParam), \
- (LPARAM)(LPPAINTSTRUCT)(ps))
-
-
-
-
- // Message handler declarations
-
- BOOL Frame_OnCreate(FRAME * pfrm, CREATESTRUCT FAR * lpCreateStruct);
- void Frame_OnDestroy(FRAME * pfrm);
-
- BOOL Frame_OnQueryEndSession(FRAME * pfrm);
- void Frame_OnEndSession(FRAME * pfrm, BOOL fEnding);
- void Frame_OnClose(FRAME * pfrm);
-
- void Frame_OnSize(FRAME * pfrm, UINT state, int cx, int cy);
-
- void Frame_OnPaint(FRAME * pfrm);
- BOOL Frame_OnEraseBkgnd(FRAME * pfrm, HDC hdc);
-
- void Frame_OnActivate(FRAME * pfrm, UINT state, HWND hWndActDeact, BOOL fMinimized);
- void Frame_OnSetFocus(FRAME * pfrm, HWND hWndOldFocus);
- void Frame_OnKillFocus(FRAME * pfrm, HWND hWndNewFocus);
-
- void Frame_OnKey(FRAME * pfrm, UINT vk, BOOL fDown, int cRepeat, UINT flags);
- void Frame_OnChar(FRAME * pfrm, UINT ch, int cRepeat);
- void Frame_OnMouseMove(FRAME * pfrm, int x, int y, UINT keyFlags);
- void Frame_OnLButtonDown(FRAME * pfrm, BOOL fDoubleClick, int x, int y, UINT keyFlags);
- void Frame_OnLButtonUp(FRAME * pfrm, int x, int y, UINT keyFlags);
-
- void Frame_OnInitMenu(FRAME * pfrm, HMENU hMenu);
- void Frame_OnInitMenuPopup(FRAME * pfrm, HMENU hMenu, int item, BOOL fSystemMenu);
-
- void Frame_OnCommand(FRAME * pfrm, int id, HWND hWndCtl, UINT codeNotify);
-
- void Frame_OnSysCommand(FRAME * pfrm, WORD cmd, int x, int y);
- void Frame_OnNclButtonDown(FRAME * pfrm, BOOL fDoubleClick, int x, int y, UINT codeHitTest);
- void Frame_OnMenuSelect(FRAME * pfrm, HMENU hMenu, int item, HMENU hmenuPopup, UINT flags);
- void Frame_OnEnterIdle(FRAME * pfrm, WORD source, HWND hWndSource);
-
- void Frame_OnMdiChildDestroy(FRAME * pfrm);
- void Frame_OnGetStatBarRect(FRAME * pfrm, LPRECT lpRect);
- void Frame_OnDrawStatusDivide(FRAME * pfrm, LPPAINTSTRUCT lpps);
- void Frame_OnResizeMdiClient(FRAME * pfrm);
- void Frame_OnSetMenuHelp(FRAME * pfrm, HWND hWndMenuHelp, DWORD dwMenuHelp);
- DWORD Frame_OnGetMenuHelp(FRAME * pfrm);
- void Frame_OnPaintMenuHelp(FRAME * pfrm, LPPAINTSTRUCT lpps);
-
- // ===========================================================Public
-
- BOOL Frame_Initialize(APP * papp);
- void Frame_Terminate(APP * papp);
-
- HWND Frame_CreateWindow(LPCSTR lpszText,
- int x,
- int y,
- int cx,
- int cy,
- HINSTANCE hinst);
-
- void WINAPI Frame_TileVertically(HWND hWndMDIClient);
- HWND WINAPI Frame_CreateMDIChild(LPSTR szClassName,
- LPSTR szWindowName,
- DWORD dwStyle,
- short x,
- short y,
- short nWidth,
- short nHeight,
- HWND hWndMDIClient,
- HANDLE hInstance,
- LPARAM lParam);
-
-
- void WINAPI Frame_ChangeMDIMenu(HWND hWndFrame,
- HWND hWndClient,
- HMENU hMenuNew,
- WORD wMenuID);
-
- //--------------------------------------------------------------End
- #endif // !CLASS_FRAME
-