You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
3.5 KiB
159 lines
3.5 KiB
/******************************Module*Header*******************************\
|
|
* Module Name: wndstuff.c
|
|
*
|
|
* This file contains the code to support a simple window that has
|
|
* a menu with a single item called "Test". When "Test" is selected
|
|
* vTest(HWND) is called.
|
|
*
|
|
* Created: 09-Dec-1992 10:44:31
|
|
* Author: Kirk Olynyk [kirko]
|
|
*
|
|
* Copyright (c) 1991 Microsoft Corporation
|
|
*
|
|
\**************************************************************************/
|
|
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include <windows.h>
|
|
#include "wndstuff.h"
|
|
|
|
HANDLE ghInstance;
|
|
HWND ghwndMain;
|
|
HBRUSH ghbrWhite;
|
|
|
|
/***************************************************************************\
|
|
* main(argc, argv[])
|
|
*
|
|
* Sets up the message loop.
|
|
*
|
|
* History:
|
|
* 04-07-91 -by- KentD
|
|
* Wrote it.
|
|
\***************************************************************************/
|
|
|
|
_cdecl
|
|
main(
|
|
INT argc,
|
|
PCHAR argv[])
|
|
{
|
|
MSG msg;
|
|
HANDLE haccel;
|
|
|
|
DONTUSE(argc);
|
|
DONTUSE(argv);
|
|
|
|
ghInstance = GetModuleHandle(NULL);
|
|
|
|
if (!bInitApp())
|
|
{
|
|
return(0);
|
|
}
|
|
|
|
haccel = LoadAccelerators(ghInstance, MAKEINTRESOURCE(1));
|
|
while (GetMessage(&msg, NULL, 0, 0))
|
|
{
|
|
if (!TranslateAccelerator(msg.hwnd, haccel, &msg))
|
|
{
|
|
TranslateMessage(&msg);
|
|
DispatchMessage(&msg);
|
|
}
|
|
}
|
|
return(1);
|
|
}
|
|
|
|
/***************************************************************************\
|
|
* bInitApp()
|
|
*
|
|
* Initializes app.
|
|
*
|
|
* History:
|
|
* 04-07-91 -by- KentD
|
|
* Wrote it.
|
|
\***************************************************************************/
|
|
|
|
BOOL bInitApp(VOID)
|
|
{
|
|
WNDCLASS wc;
|
|
|
|
ghbrWhite = CreateSolidBrush(RGB(0xFF,0xFF,0xFF));
|
|
|
|
wc.style = 0;
|
|
wc.lpfnWndProc = lMainWindowProc;
|
|
wc.cbClsExtra = 0;
|
|
wc.cbWndExtra = 0;
|
|
wc.hInstance = ghInstance;
|
|
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
|
|
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
|
wc.hbrBackground = ghbrWhite;
|
|
wc.lpszMenuName = "MainMenu";
|
|
wc.lpszClassName = "TestClass";
|
|
if (!RegisterClass(&wc))
|
|
{
|
|
return(FALSE);
|
|
}
|
|
ghwndMain =
|
|
CreateWindowEx(
|
|
0,
|
|
"TestClass",
|
|
"Win32 Test",
|
|
MY_WINDOWSTYLE_FLAGS,
|
|
80,
|
|
70,
|
|
400,
|
|
300,
|
|
NULL,
|
|
NULL,
|
|
ghInstance,
|
|
NULL
|
|
);
|
|
if (ghwndMain == NULL)
|
|
{
|
|
return(FALSE);
|
|
}
|
|
SetFocus(ghwndMain);
|
|
return(TRUE);
|
|
}
|
|
|
|
/***************************************************************************\
|
|
* lMainWindowProc(hwnd, message, wParam, lParam)
|
|
*
|
|
* Processes all messages for the main window.
|
|
*
|
|
* History:
|
|
* 04-07-91 -by- KentD
|
|
* Wrote it.
|
|
\***************************************************************************/
|
|
|
|
BOOL gbOn = FALSE;
|
|
POINTL ptlWindow;
|
|
SIZEL sizlWindow;
|
|
|
|
LRESULT
|
|
lMainWindowProc(
|
|
HWND hwnd,
|
|
UINT message,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
)
|
|
{
|
|
switch (message)
|
|
{
|
|
case WM_CREATE:
|
|
|
|
vTest(hwnd);
|
|
PostQuitMessage(0);
|
|
return(DefWindowProc(hwnd, message, wParam, lParam));
|
|
|
|
case WM_DESTROY:
|
|
|
|
DeleteObject(ghbrWhite);
|
|
PostQuitMessage(0);
|
|
return(DefWindowProc(hwnd, message, wParam, lParam));
|
|
|
|
default:
|
|
|
|
return(DefWindowProc(hwnd, message, wParam, lParam));
|
|
}
|
|
return(0);
|
|
}
|