main.c 2018-10-04 13:57


/**************************************************
《C语言,好爽》第7版(2017年-宁采臣)

项目3:俄罗斯方块2.0(C语言版)
功能描述:
1:图形化程序
2:播放音乐:“没有你陪伴真的好孤单-梦然”,“倩女幽魂-十里平湖”
3:自定义ico图标;
4:随机产生小方块;
5:方块变形;
6:满行消除;
......

---宁采臣(谷应平)
---源码整理时间:2018年10月4日
---灵感编程:phpkhbd.com
---微信:guyingping66
**************************************************/

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
#include<mmsystem.h>
#include"resource.h"
#include"eluosi.h"

#pragma comment(lib,"winmm.lib")

int __stdcall	WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nCmdShow)
{

	WNDCLASSEX wce;//窗口
	HWND hWnd;
	MSG msg;

	//12个成员属性
	wce.cbClsExtra = 0;
	wce.cbSize = sizeof(WNDCLASSEX);
	wce.cbWndExtra = 0;
	wce.hbrBackground = (HBRUSH)COLOR_WINDOW;
	//wce.hCursor = NULL;
	wce.hCursor = LoadCursor(NULL, IDC_ARROW);
	wce.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
	//wce.hIcon = NULL;
	wce.hIconSm = NULL;
	wce.hInstance = hInstance;
	wce.lpfnWndProc = myfunc;//回调函数,函数名就是地址
	wce.lpszClassName = "eluosi";
	wce.lpszMenuName = NULL;
	wce.style = CS_HREDRAW | CS_VREDRAW;

	//注册窗口对象
	if (0 == RegisterClassEx(&wce))
	{
		//出错信息
		GetLastError();
		return 0;
	}

	//创建窗口(资源,C语言只能到结构体)
	hWnd = CreateWindowEx(WS_EX_TOPMOST, "eluosi", TEXT("俄罗斯方块"), WS_OVERLAPPEDWINDOW, 100, 100, 500, 650, NULL, NULL, hInstance, NULL);
	if (NULL == hWnd)
	{
		return 0;
	}

	//显示窗口:正常显示返回非0,隐藏显示返回0
	ShowWindow(hWnd, SW_SHOWNORMAL);

	//消息循环(获取所有消息)
	while (GetMessage(&msg, NULL, 0, 0))
	{
		//1:翻译消息
		TranslateMessage(&msg);

		//2:分发消息(消息种类:标准消息,命令消息,通知消息,自定义消息),去执行回调函数
		DispatchMessage(&msg);
	}

	return 0;
}