1、_typedef.h
/***************************************************************
*版权所有 (C)2014,长沙铁信交通科技有限公司。
*
*文件名称:_typedef.h
*内容摘要:重定义内置基本类型
*其它说明:
*当前版本:V1.0
*作 者:伍定湘
*完成日期:2014年10月23日
*
*修改记录1:
* 修改日期:2014年10月23日
* 版本号:V1.0
* 修改人:伍定湘
* 修改内容:创建
*修改记录2:
* 修改日期:2014年10月23日
* 版本号:V1.1
* 修改人:伍定湘
* 修改内容:添加char类型重定义
***************************************************************/
#ifndef _TYPEDEF_H_ //防止头文件被重复引用
#define _TYPEDEF_H_
/**************************************************************
相关宏定义
**************************************************************/
typedef unsigned short int UINT16;
typedef signed short int INT16;
typedef unsigned int UINT32;
typedef signed int INT32;
typedef unsigned long ULONG;
typedef signed long LONG;
typedef unsigned char UINT8;
typedef signed char INT8;
typedef char CHAR;//修改2添加
typedef float FLOAT;//修改2添加
typedef double LFLOAT;//修改2添加
/**************************************************************
相关结构体定义
**************************************************************/
/**************************************************************
本程序中出现的函数的声明
**************************************************************/
#endif
2、_main.h
/***************************************************************
*版权所有 (C)2014,长沙铁信交通科技有限公司。
*
*文件名称:_main.h
*内容摘要:重定义内置基本类型
*其它说明:
*当前版本:V1.0
*作 者:伍定湘
*完成日期:2014年10月23日
*
*修改记录1:
* 修改日期:2014年10月23日
* 版本号:V1.0
* 修改人:伍定湘
* 修改内容:创建
***************************************************************/
#ifndef _MAIN_H_ //防止头文件被重复引用
#define _MAIN_H_
/**************************************************************
头文件引用
**************************************************************/
#include "_typedef.h"//引入内置类型重定义
#include <windows.h>
#include <stdio.h>
/**************************************************************
相关宏定义
**************************************************************/
/**************************************************************
相关结构体定义
**************************************************************/
/**************************************************************
本程序中出现的函数的声明
**************************************************************/
LRESULT CALLBACK _cbWinMain(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
#endif
3、_main.cpp
/***************************************************************
*版权所有 (C)2014,长沙铁信交通科技有限公司。
*
*文件名称:_main.c
*内容摘要:
*其它说明:
*当前版本:V1.0
*作 者:伍定湘
*完成日期:2014年10月23日
*
*修改记录1:
* 修改日期:2014年10月23日
* 版本号:V1.0
* 修改人:伍定湘
* 修改内容:创建
***************************************************************/
/**************************************************************
头文件引用
**************************************************************/
#include "_typedef.h"//引入内置类型重定义
#include <windows.h>
#include <stdio.h>
#include "_main.h"
/**************************************************************
全局变量定义
**************************************************************/
/**************************************************************
函数实现
**************************************************************/
/**********************************************************************
*功能描述:主窗口
*输入参数: hInstance - 当前程序句柄
hPrevInstance - 前一个程序句柄
lpCmdLine - 指向命令行参数字符串的指针
nCmdShow - 窗口显示方式
*输出参数:
*返回值:0 - 程序执行成功
*其它说明:
*修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------------------
*2014年10月23日 V1.0 伍定湘 创建
***********************************************************************/
INT32 WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, \
LPSTR lpCmdLine, INT32 nCmdShow)
{
/* 设置窗口类参数 */
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;//不使用时应为0
wndcls.cbWndExtra = 0;//不使用时应为0
wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景色
wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);//鼠标在窗口中的形态
wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);//窗口图标
wndcls.hInstance = hInstance;//当前程序句柄
wndcls.lpfnWndProc = _cbWinMain;//把回调函数和主窗口链接在一起
wndcls.lpszClassName = "MyFristMFC";
wndcls.lpszMenuName = NULL; //不使用时应为NULL
wndcls.style = CS_HREDRAW | CS_VREDRAW;
/* 注册窗口类 */
RegisterClass(&wndcls);
/* 创建窗口 */
HWND hwnd;
hwnd = CreateWindow
(
"MyFristMFC",//lpClassName
"我的第一个MFC程序",//lpWindowName
WS_OVERLAPPEDWINDOW,//dwStyle
100, 100,//x, y
600, 400,//nWidth, nHeight
NULL,//hWndParent
NULL,//hMenu
hInstance,
NULL//lpParam
);
/* 显示窗口 */
ShowWindow(hwnd, SW_SHOWNORMAL);
/* 更新窗口 (异步显示)*/
UpdateWindow(hwnd);
MSG msg;
/* 轮询处理消息 */
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
/**********************************************************************
*功能描述:主窗口回调函数
*输入参数: hwnd -
uMsg -
wParam -
lParam -
*输出参数:
*返回值:0 - 程序执行成功
*其它说明:
*修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------------------
*2014年10月23日 V1.0 伍定湘 创建
***********************************************************************/
LRESULT CALLBACK _cbWinMain(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CHAR://键盘字符
CHAR szChar[20];
sprintf_s(szChar, "键盘字符 = %c", wParam);
MessageBox(hwnd, szChar, "键盘字符", 0);//弹出对话框
break;
case WM_LBUTTONDOWN://鼠标左键
MessageBox(hwnd, "鼠标左键", "鼠标左键", 0);
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc, 0, 50, "鼠标左键", strlen("鼠标左键"));
ReleaseDC(hwnd, hdc);
break;
case WM_PAINT://窗口绘制
HDC hDC;
PAINTSTRUCT ps;
hDC = BeginPaint(hwnd, &ps);
TextOut(hDC, 0, 0, "窗口绘制", strlen("窗口绘制"));
EndPaint(hwnd, &ps);
break;
case WM_CLOSE://窗口关闭
if (IDYES == MessageBox(hwnd, "是否真的结束?", "窗口关闭", MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY://窗口销毁
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}