// 源码
//
#include "stdafx.h"
#include "WindowsProject2.h"
#include "windows.h"
#include "resource.h"
#define MAX_LOADSTRING 100
BOOL InitApplication(HINSTANCE hIstance);
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow);
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK About(HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam);
// 全局变量:
HINSTANCE _hInst; // 当前实例
HWND _hWnd;
WCHAR _szAppName[] = _T("Generic");
char _szTitle[] = "Geveric Sample Application"; // 标题栏文本
char szWindowClass[MAX_LOADSTRING]; // 主窗口类名
int CALLBACK WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: 在此放置代码。
// 执行应用程序初始化:
if (!InitApplication(hInstance))
return (FALSE);
if (!InitInstance (hInstance, nCmdShow))
return FALSE;
MSG msg;
// 主消息循环:
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return ( msg.wParam);
}
//
//
// 函数:InitApplication
//
// 目的:产生窗口
//
BOOL InitApplication(HINSTANCE hIstance) {
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hIstance;
wc.hIcon = LoadIcon(hIstance, _T("jhouricon"));
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = _T("GenericMenu");
wc.lpszClassName = _szAppName;
return (RegisterClass(&wc));
}
//
//
// 函数:InitInstance
//
// 目的:产生窗口
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) {
_hInst = hInstance; //储存为全局变量,方便使用。
_hWnd = CreateWindow(
(LPCWSTR)_szAppName,
(LPCWSTR)_szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if (!_hWnd)
return (false);
ShowWindow(_hWnd, nCmdShow);
UpdateWindow(_hWnd);
return (TRUE);
}
//
// 函数: WndProc
//
// 目的: 窗口函数。
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam) {
int wmId, wmEvent;
switch (message) {
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmId)
{
case IDM_ABOUT:
DialogBox(_hInst,
_T("AboutBox"), //对话框资源名称
hWnd, //父窗口
(DLGPROC)About); //对话框函数名称
break;
case IDM_EXIT:
//使用者想结束程序。处理方式与 WM_CLOSE 相同。
DestroyWindow(hWnd);
break;
default:
return (DefWindowProc(hWnd, message, wParam, lParam));
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default :
return DefWindowProc(hWnd, message, wParam, lParam);
}
return (0);
}
//
// 函数: About
//
// 目的: 对话框函数。
//
LRESULT CALLBACK About(HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam) {
UNREFERENCED_PARAMETER(lParam);
switch (message) {
case WM_INITDIALOG:
return (TRUE);
case WM_COMMAND:
if (LOWORD(wParam) == IDOK
|| LOWORD(wParam) == IDCANCEL) {
EndDialog(hDlg, true);
return (true);
}
break;
}
return (FALSE);
}