home *** CD-ROM | disk | FTP | other *** search
- /*
- *
- * MODULE : BlandIni.c
- *
- * PURPOSE : Contains initialization code for BlandMDI.
- *
- * FUNCTIONS:
- *
- * InitializeApplication() - Sets up Class data structure
- * and registers window class.
- *
- * InitializeInstance () - Does a per-instance initialization
- * of BlandMDI. Creates the "frame"
- * and MDI client.
- *
- * MakeNewChild () - Creates a new MDI child window
- *
- * Copyright 1991 Microsoft Corporation. All rights reserved.
- */
-
- /*------------------------ #includes --------------------------------*/
-
- #include "BlandMDI.h"
-
-
- /*------------------------ global variables -------------------------*/
-
- char szFrame[] = "bland frame"; // Class name for "frame" window
- char szChild[] = "bland child"; // Class name for MDI window
-
-
- /*--------------------- InitializeApplication -------------------------*/
- /*
- *
- * FUNCTION : InitializeApplication ()
- *
- * PURPOSE : Sets up the class data structures and does a one-time
- * initialization of the app by registering the window classes
- *
- * RETURNS : TRUE - If RegisterClass() was successful for both classes.
- * FALSE - otherwise.
- *
- */
-
- BOOL FAR PASCAL InitializeApplication()
- {
- WNDCLASS wc;
-
- // Register the frame class
- wc.style = 0;
- wc.lpfnWndProc = BlandFrameWndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = hInst;
- wc.hIcon = LoadIcon(hInst, IDBLANDFRAME);
- wc.hCursor = LoadCursor(NULL,IDC_ARROW);
- wc.hbrBackground = COLOR_APPWORKSPACE+1;
- wc.lpszMenuName = IDBLANDMENU;
- wc.lpszClassName = szFrame;
-
- if (RegisterClass (&wc))
- {
- // Register the MDI child class
- wc.lpfnWndProc = BlandMDIChildWndProc;
- wc.hIcon = LoadIcon(hInst,IDBLANDCHILD);
- wc.lpszMenuName = NULL;
- wc.cbWndExtra = CBWNDEXTRA;
- wc.lpszClassName = szChild;
-
- if (RegisterClass(&wc))
- return TRUE;
- }
-
- return FALSE;
- }
-
-
- /*---------------------- InitializeInstance --------------------------*/
- /*
- *
- * FUNCTION : InitializeInstance ()
- *
- * PURPOSE : Performs a per-instance initialization of BlandMDI. It
- * also creates the frame and one MDI child window.
- *
- * RETURNS : TRUE - If initialization was successful.
- * FALSE - otherwise.
- *
- */
-
-
- BOOL FAR PASCAL InitializeInstance(LPSTR lpCmdLine, WORD nCmdShow)
- {
- extern HWND hwndMDIClient;
- char sz[80], *pCmdLine;
- HDC hdc;
- HMENU hmenu;
-
- // Get the base window title
- LoadString (hInst, IDS_APPNAME, sz, sizeof(sz));
-
- // Create the frame
- // MDI Client window is created in frame's WM_CREATE case
- hwndFrame = CreateWindow (szFrame,
- sz,
- WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
- CW_USEDEFAULT,
- 0,
- CW_USEDEFAULT,
- 0,
- NULL,
- NULL,
- hInst,
- NULL);
-
- if (hwndFrame && hwndMDIClient)
- {
- // Display the frame window
- ShowWindow (hwndFrame, nCmdShow);
- UpdateWindow (hwndFrame);
-
- // Make the first MDI child window
- MakeNewChild ("Initial Window");
- return TRUE;
- }
-
- return FALSE;
- }
-
-
- /*---------------- MakeNewChild -----------------------------*/
- /*
- *
- * FUNCTION : MakeNewChild (lpName)
- *
- * PURPOSE : Creates a new MDI child window.
- *
- * RETURNS : HWND - A handle to the new window.
- *
- */
-
- HWND FAR PASCAL MakeNewChild(char *pName)
- {
- HWND hwnd;
- char sz[160];
- MDICREATESTRUCT mcs;
-
- if (!pName)
- {
- // pName parameter is NULL -- load the "Untitled" string
- // from STRINGTABLE
- LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz));
- mcs.szTitle = (LPSTR)sz;
- }
- else
- {
- mcs.szTitle = (LPSTR)pName; /* Fully qualified pathname*/
- }
-
- mcs.szClass = szChild;
- mcs.hOwner = hInst;
- mcs.x = mcs.cx = CW_USEDEFAULT; // Use the default size for the window
- mcs.y = mcs.cy = CW_USEDEFAULT;
- mcs.style = styleDefault; // Set the style DWORD of the window
- // to default
- // tell the MDI Client to create the child
- hwnd = (WORD)SendMessage (hwndMDIClient,
- WM_MDICREATE,
- 0,
- (LONG)(LPMDICREATESTRUCT)&mcs);
- ShowWindow(hwnd, SW_SHOW);
-
- return hwnd;
- }
-