搜狐媒体平台-搜狐网站>IT

他一出家就成中国最帅和尚

眼眸深邃、轮廓分明、身材颀长,活生生的一幅画。

大学副教授与在押服刑女结婚

这在监狱民警看来,那么令人不可思议。

俄罗斯方块项目源码(一)

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。举报

  /*

  创建窗口

  win32窗口的创建过程主要有6部分

  1.头文件与主函数、2.创建窗口结构体、3.注册窗口、4.创建窗口、5.显示窗口、6.消息循环、7.回掉函数

  头文件:windows.h

  主函数:int WINAPI WinMain( HINSTANCE hlnstance, //句柄:一个数,窗口唯一标识

  HINSTANCE hPrevlnstance, //前一个句柄

  LPTSTR lpCmdLine,//传递给应用程序的命令行参数

  int nCmdShow)//指定窗口的显示方式 隐藏 最大最小显示

  返回值:int

  WINAPI:调用约定, 主要是参数的入栈顺序,这个栈空间的清理者,__stdcall,APIENTRY,本质都是一样的

  WinMain:主函数的写法,注意不是main

  */

  #include<time.h>

  #include<stdlib.h>

  #include<windows.h>

  //定时器ID

  #define DEF_TIMER1 1234

  //创建兼容性DC

  void OnPaint(HDC hDc);

  //显示方块

  void PaintSpare(HDC hMemDC);

  //随机小方块

  int CreateRandmSqare();

  //随机小方块贴进背景

  void CopySqareToBack();

  //初始化

  void OnCreate();

  //回车键函数

  void OnReturn(HWND hWnd);

  //方块下落

  void SqareDwon();

  //定时器相应函数

  void OnTimer(HWND hWnd);

  //方块停在最底下 0 不可以下落 1可以下落

  int CanSgareDown();

  //下落

  int CanSgareDown2();

  //将1变成2

  void Change1To2();

  //显示2

  void ShowSqare2(HDC hMemDC);

  //左键

  void OnLeft(HWND hWnd);

  //左移

  void SqareLeft();

  //方块在最左面 0 不可以左移 1可以左移

  int CanSgareLeft();

  //左移限制

  int CanSgareLeft2();

  //右键

  void OnRight(HWND hWnd);

  //右移

  void SqareRight();

  //方块在最右面 0 不可以右移 1可以右移

  int CanSgareRight();

  //右移限制

  int CanSgareRight2();

  //加速向下

  void OnDown(HWND hWnd);

  //变形 上键

  void OnUp(HWND hWnd);

  //3 * 3变形

  void ChangeSqare();

  //3 * 3变形限制

  int CanSqareChangeSape();

  //长条变形

  void ChangeLineSqare();

  //长条变形限制

  int CanLineSqareChange();

  //消除已满的行数

  void DestroyOneLineSqare();

  //显示分数

  void ShowScore(HDC hMemDC);

  //游戏结束

  int CanGomeOver();

  //7.回掉函数

  // 回调函数 一个窗口对应一个窗口句柄

  //long类型 调用约定 函数名字(窗口句柄,无符号整形消息的ID, 参数 3无符号整形 4long 传递信息自己定可以)

  LRESULT CALLBACK PELouSi(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParan)

  {

  PAINTSTRUCT pt;

  HDC hDC;//可以画的范围 也就是用户窗口可操作的范围(标识)

  switch (nMsg)

  {

  case WM_CREATE://窗口消息处理程序接收的第一个消息-也是回掉函数的第一个消息-是WM_CREATE 这个消息只产生一次,一般用于初始化一些数据

  OnCreate();

  break;

  //回掉函数的第二个消息

  //当窗口显示区域的一部分显示内容或者全部变为“无效”,以至于必须“更新画面”时,将由这个消息通知程序

  //窗口结构体的最后那个成员CS_HREDRAW | CS_VREDRAW,目的就是窗口大小发生变化的时候,产生WM_PAINT消息

  //窗口重叠时,重叠部分渐渐出现时

  case WM_TIMER://定时器消息

  OnTimer(hWnd);

  break;

  case WM_PAINT:

  hDC = BeginPaint(hWnd, &pt);//画窗口内容开始 有用getDC的

  OnPaint(hDC);//画图的函数

  EndPaint(hWnd, &pt);//画窗口内容结束

  break;

  case WM_KEYDOWN://WM_KEYDOWN键盘安下

  switch (wParam)//wParam回掉函数第三个参数 区分是按得那个键

  {

  case VK_RETURN://回车键

  OnReturn(hWnd);//开始

  break;

  case VK_LEFT://左键

  OnLeft(hWnd);//左移

  break;

  case VK_RIGHT://右键

  OnRight(hWnd);//右移

  break;

  case VK_UP://上键

  OnUp(hWnd);//变形

  break;

  case VK_DOWN://下键

  OnDown(hWnd);//加速

  break;

  }

  break;

  case WM_DESTROY://点×三种消息依次产生: WM_CLOSE -> WM_DESTROY销毁窗口 -> WM_QUIT退出消息 W:windows M:消息

  KillTimer(hWnd, DEF_TIMER1);

  PostQuitMessage(0);//传递退出消息

  break;

  }

  return DefWindowProc(hWnd, nMsg, wParam, lParan);//功能 没有处理的消息系统自动处理 保证系统的连贯性 什么都不做 每次在窗口有点击、输入都会有消息

  }

  //1.头文件与主函数

  int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) //错误C2731“WinMain”: 无法重载函数

  //int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

  {

  //2.创建窗口结构体

  //初始化窗口类

  WNDCLASSEX wc;

  HWND hWnd;

  MSG mSg; //MSG 消息的结构体

  //12个成员不能多不能少 要不 失败

  wc.cbClsExtra = 0;//紧跟在窗口类尾部的一块额外的空间,不用设为0。

  wc.cbSize = sizeof(WNDCLASSEX);//类的大小

  wc.cbWndExtra = 0;//拓展窗口对话框

  wc.hbrBackground = (HBRUSH)COLOR_SCROLLBAR;//背景颜色COLOR_BACKGROUND

  wc.hCursor = NULL;//光标样式 LoadCursor(句柄系统定义填NULL 加载自定义填hInstance,样式 自定义添加资源文件)

  wc.hIcon = NULL;//任务栏显示的图标 LoadIcon(句柄系统定义填NULL 加载自定义填hInstance,样式 自定义添加资源文件)

  wc.hIconSm = NULL;//窗口左上角的图标 如果为空则默认为任务栏的图标

  wc.hInstance = hInstance;//当前窗口的句柄 //句柄又系统传递

  wc.lpfnWndProc = PELouSi;//回掉函数函数地址

  wc.lpszClassName = "elsfk";//窗口类的名字 名字不要重复 给系统看的 不是最上面那个名字

  wc.lpszMenuName = NULL; //菜单

  wc.style = CS_HREDRAW | CS_VREDRAW;///窗口显示风格 垂直刷新 水平刷新 最大化等

  //3.注册窗口对象

  if (0 == RegisterClassEx(&wc))//如果注册失败

  {

  //出错 不知道什么原因

  int a = GetLastError();//用这个函数 返回一个值

  return 0;

  }

  //4.创建窗口

  hWnd = CreateWindowEx(WS_EX_TOPMOST, "elsfk", "俄罗斯方块", WS_OVERLAPPEDWINDOW, 100, 100, 500, 646, NULL, NULL, hInstance, NULL);

  //(附加属性 (WS_EX_TOPMOST总是在最前端),

  //窗口类的名字 名字不要重复 给系统看的 不是最上面那个名字 与上面的一样,

  //窗口的名字 左上角的 人你看的... ,

  //指定窗口的风格,

  //int x;相对于桌面 坐标 是像素 左,

------------华丽的分割线--------------

  最近两天,我没有坚持发文章,我想要不断给大家更新内容,可是我真的不知道要发什么内容。每次发源码的时候很多人都会因为编译器的原因运行不出来,这个也不排除,因为每个人使用的编译器都不一样。

我发现很多人都会问这几个问题

  1、什么是编程?

  答:编程=语言+平台

  2、新手应该学什么语言?

  答:新手建议先从C语言开始学,因为C语言是计算机入门语言,c++ 、Java、c#等都是借鉴了C语言的语法。

  3、我到底该学什么语言?

  答:----别问,学就对了;任何语言都是从基础开始学习!

  经过长时间精心备课,杨老师的C语言系统已经上线,本期共包含22节课,课程为标准C语言课程,课程内容见下图,希望大家能把握好这期课,达到完美的学习效果。

  课程包含内容:

  数据类型、进制转换、运算符、循环语句、开关分支语句、函数、数组、字符串、指针、结构体、内存管理、文件操作函数指针、指针函数、多维数组、高级指针、

  

  这期课程上课时间是:

  每天晚上一节课

  每节课是一个小时共:22节课

  前20名支付是20元,优惠名额过了后面报名的学员是50元。

  满30人开班,早点报名早点学习!

  已付款的同学提供转账截图并微信联系我。最后希望大家都能学到更多的技术和知识。本期课会重新建微信课堂群,以便共享学习资料和杨老师与大家的提问和互动。

  小编的微信号:ma146009

零基础入门点击原文阅读

  

mt.sohu.com true c语言程序设计mp https://mt.sohu.com/20161207/n475232932.shtml report 8731 /*创建窗口win32窗口的创建过程主要有6部分1.头文件与主函数、2.创建窗口结构体、3.注册窗口、4.创建窗口、5.显示窗口、6.消息循环、7.回掉函数头文
阅读(0) 举报
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。

热门关注

搜生活

搜生活+关注

搜狐公众平台官方账号

MAGIC杨梦晶

MAGIC杨梦晶+关注

生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者

搜狐教育

搜狐教育+关注

搜狐网教育频道官方账号

星吧GEO

星吧GEO+关注

全球最大华文占星网站-专业研究星座命理及测算服务机构

热门图片

  • 热点视频
  • 影视剧
  • 综艺
  • 原创
锦绣缘

同步热播-锦绣缘

主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
神雕侠侣

大结局-神雕侠侣

主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
封神英雄榜

同步热播-封神英雄榜

主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓

六颗子弹

主演:尚格·云顿/乔·弗拉尼甘/Bianca Bree
龙虎少年队2

龙虎少年队2

主演:艾斯·库珀/ 查宁·塔图姆/ 乔纳·希尔

《奔跑吧兄弟》

baby14岁写真曝光

《我看你有戏》

李冰冰向成龙撒娇争宠

《明星同乐会》

李湘遭闺蜜曝光旧爱

《非你莫属》

美女模特教老板走秀

《一站到底》

曝搬砖男神奇葩择偶观

搜狐视频娱乐播报

柳岩被迫成赚钱工具

大鹏嘚吧嘚

大屁小P虐心恋

匆匆那年第16集

匆匆那年大结局

隐秘而伟大第二季

乔杉遭粉丝骚扰

The Kelly Show

男闺蜜的尴尬初夜

我来说两句排行榜

客服热线:86-10-58511234

客服邮箱:kf@vip.sohu.com