`
suiyuan0808
  • 浏览: 156137 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

网络游戏客户端从WinMain开始

    博客分类:
  • c++
 
阅读更多

    网络游戏客户端从WinMain开始

     各位看官,您是否看得懂以下的源码吗?如果是,恭喜您,您已经具有WINDOW网络游戏开发的一个基本基础条件,也就是您已经Window应用程序运行最基本最原始的原理。如果没有看懂,请继续听我的解释。

    记得哦,所有的window应用程序都是从WinMain开始哦(当然,游戏也不例外,它也是一种应用程序哦)。WinMain函数以及WinProc函数是window应用最基础也是最重要函数。WinProc是消息回调函数,其功能类似java swing的WindowListener监听器接口,用来处理窗口等消息。
 
 /*
while(GetMessage(&msg,NULL,0,0))//获取消息最终将转发给WinProc函数。
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
*/

建立工程以及运行工程如下:



 
 

 


 
#include <windows.h>
#include <stdio.h>
 
 //消息回调函数
LRESULT CALLBACK WinProc(
  HWND hwnd,     
  UINT message,    
  WPARAM wParam, 
  LPARAM lParam 
);
 
//主函数
int WINAPI WinMain(
  HINSTANCE hInstance,      // 应用程序当前实例句柄
  HINSTANCE hPrevInstance,  // 应用程序其他实例句柄
  LPSTR lpCmdLine,          // 指向程序命令行参数的指针
  int nCmdShow              // 应用程序开始执行时窗口显示方式的整数值标识
)
{
 WNDCLASS wd;
 wd.cbClsExtra=0;//窗口类无扩展
 wd.cbWndExtra=0;//窗口实例无扩展
 wd.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//窗口背景为黑色
 wd.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标
 wd.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为默认图标
 wd.hInstance=hInstance;//当前实例句柄
 wd.lpfnWndProc=WinProc;//定义窗口处理函数
 wd.lpszClassName="游戏窗口";//定义窗口类名称
 wd.lpszMenuName=NULL;//窗口中无菜单
 wd.style=CS_HREDRAW | CS_VREDRAW;//定义窗口类型为当窗口大小变化时窗口重画

 RegisterClass(&wd);//注册窗口类

    //创建窗口
 HWND hwnd;
 hwnd=CreateWindow("游戏窗口","我的游戏窗口",WS_OVERLAPPEDWINDOW,
  0,0,800,500,NULL,NULL,hInstance,NULL);
    //显示窗口
 ShowWindow(hwnd,SW_SHOWNORMAL);
 //更新窗口
 UpdateWindow(hwnd);
      ///消息循环
 MSG msg;
 while(GetMessage(&msg,NULL,0,0))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return 0;
}

//窗口函数
LRESULT CALLBACK WinProc(
  HWND hwnd,      // handle to window
  UINT message,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
 switch(message)
 {
 case WM_LBUTTONDOWN:
  MessageBox(hwnd,"你好!","C++游戏窗口",0);
  break;
 
 case WM_CLOSE:
  if(MessageBox(hwnd,"关闭游戏窗口吗?","C++",MB_YESNO)==IDYES)
  {
       DestroyWindow(hwnd);
  }
  break;
 
 case WM_DESTROY:
    PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hwnd,message,wParam,lParam);
 }
 return 0;
}

  • 大小: 170.3 KB
  • 大小: 143.4 KB
  • 大小: 139.3 KB
0
0
分享到:
评论

相关推荐

    梁健雄游戏制作方案.doc

    学习过程中,梁健雄参考了多本专业书籍,如《Visual C++游戏设计》、《Visual C++网络游戏建模与实现》、《Java游戏程序设计》和《游戏设计概论》,并从网站如17173.com和gameres.com获取资源和教程。这种自学和实践...

    小游戏制作具体实现方案

    在学习游戏编程的过程中,参考书籍如《Visual C++游戏设计》、《Visual C++网络游戏建模与实现》、《Java 游戏程序设计》和《游戏设计概论》是必不可少的资源。通过阅读和实践,可以从理论到实践逐步掌握游戏开发的...

    游戏编程指南 doc

    章节十一介绍了网络编程的基础,包括客户端-服务器模型,使用Multicast技术和优化数据传输,这对于实现多人在线游戏至关重要。 章节十二探讨了不同游戏类型的编程要点,如SLG(策略游戏)的电脑AI、RPG(角色扮演...

    UDP.zip_UDP C++ Win32_udp win32

    因此,它适合那些对实时性要求高但可以容忍数据丢失的应用,如在线游戏、语音和视频通话等。 C++是一种强大的、面向对象的编程语言,它允许程序员进行低级内存管理和创建高效的代码。在Windows平台上,使用C++编写...

    C++ 基础知识总结_终稿_124.pdf

    2. **桌面客户端**: 如桌面软件、游戏客户端等。 3. **图形学/游戏/VR/AR**: 包括3D渲染、物理模拟等技术。 以上是文档的主要内容,对于想要学习C++语言及应用的初学者来说,这份总结提供了全面的知识体系和实用的...

    Windows系统编程

    在IT领域,Windows系统编程是开发人员不可或缺的一部分,尤其对于那些致力于桌面应用、游戏开发以及系统级编程的程序员而言。Windows系统编程主要涉及到利用Microsoft Windows操作系统提供的API(应用程序接口)来...

    C语言也能干大事(源板书)

    C语言是一种强大的编程语言,不仅能够编写基础的控制台应用程序,还能够用于开发复杂的应用,如游戏、网络程序、网站程序等。 **1.2 实例展示** - **计算器**: 通过C语言可以开发出功能齐全的计算器应用,支持基本...

Global site tag (gtag.js) - Google Analytics