【C++】_017_一个简单的MFC窗口程序

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;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值