鱼C论坛

 找回密码
 立即注册
查看: 3523|回复: 11

[技术交流] 带注释的码,这是照小甲鱼教程编的,注释是详解,要的拿走

[复制链接]
发表于 2015-3-23 09:11:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 qwerdfb2418 于 2015-3-23 13:36 编辑
  1. /*基本窗口模型根据小甲鱼教程编写(注释自己加的)*/
  2. /*窗口的诞生:窗口类结构-注册窗口类-创建窗口实例-显示窗口-更新窗口(不可以忽略)-消息循环*/
  3. #include<Windows.h>//Windows编程
  4. LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//回调函数
  5. int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
  6. {
  7.         static TCHAR szAppName[]=TEXT("my windows");//定义窗口类名字
  8.         HWND hwnd;//窗口的句柄(句柄是一个特殊的指针)
  9.         MSG msg;//消息机制
  10.         WNDCLASS wndclass;//窗口类结构
  11.         /*Windows的窗口都是基于窗口类创建的*/
  12.         wndclass.style=CS_HREDRAW|CS_VREDRAW;//调整高度、宽度重绘窗口(注:无法重绘也可调整窗口,但是调整后文字位置不改变)
  13.         wndclass.lpfnWndProc=WndProc;//指定窗口过程
  14.         wndclass.cbClsExtra=0;//额外空间一般为0
  15.         wndclass.cbWndExtra=0;//额外空间一般为0
  16.         wndclass.hInstance=hInstance;//句柄,与winmain第一个参数对应
  17.         wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//为基于该窗口类的窗口设定一个图标,此为普通图标
  18.         wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//为基于该窗口类的窗口设定一个鼠标指针
  19.         wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//whitebrush为背景颜色,可以更改
  20.         wndclass.lpszMenuName=NULL;//菜单名字(本程序没有菜单,所以为空)
  21.         wndclass.lpszClassName=szAppName;//窗口类的名字,对应第7行
  22.         /*下边为注册*/
  23.         if(!RegisterClass(&wndclass))//判断是否是非Windows系统,如果是则提示无法运行并退出
  24.         {
  25.                 MessageBox(NULL,TEXT("这个程序在Windows才能执行!"),szAppName,MB_ICONERROR);
  26.                 return 0;
  27.         }
  28.         /*丰富更多个性化特征,下段结束后实例已经诞生*/
  29.         hwnd=CreateWindow(szAppName,//窗口类名称(基于哪一个窗口类)
  30.                 TEXT("鱼c工作室"),//窗口标题
  31.                 WS_OVERLAPPEDWINDOW,//窗口风格(也称窗口格式)
  32.                 CW_USEDEFAULT,//初始x坐标(这里使用的都是默认,下边的三个也一样)
  33.                 CW_USEDEFAULT,//初始y坐标
  34.                 CW_USEDEFAULT,//初始x方向尺寸
  35.                 CW_USEDEFAULT,//初始y方向尺寸
  36.                 NULL,//父窗口句柄
  37.                 NULL,//窗口菜单句柄
  38.                 hInstance,//程序实例句柄
  39.                 NULL);//创建参数
  40.         /*扩展:CS类风格选项,CW创建窗口选项,DT文本绘制选项,IDI图标的ID号,
  41.         IDC光标的ID号,MB消息框选项,SND声音选项,WM窗口消息,WS窗口风格*/
  42.         ShowWindow(hwnd,iCmdShow);//展示此窗口(将窗口显示出来)
  43.         UpdateWindow(hwnd);//更新窗口
  44.         /*消息队列的三点补充:1.消息队列是FIFO的形式(先进先出)2.特例:WM_PAINT,WM_TIMER,WM_QUIT,在消息队列最后
  45.         3.消息分为队列化消息和非队列化消息*/
  46.         /*下为消息循环*/
  47.         while(GetMessage(&msg,NULL,0,0))//通过此循环获得消息,若返回值为0则退出(WM_QUIT),&msg为指针,
  48.         {
  49.                 TranslateMessage(&msg);//将消息进行翻译
  50.                 DispatchMessage(&msg);//分派消息对应第九行
  51.         }
  52.         return msg.wParam;
  53. }
  54. /*回调函数*/
  55. LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  56. {
  57.         HDC hdc;
  58.         PAINTSTRUCT ps;
  59.         RECT rect;

  60.         switch(message)
  61.         {
  62.         case WM_PAINT://绘制窗口
  63.                         hdc=BeginPaint(hwnd,&ps);//绘画初始化
  64.                         GetClientRect(hwnd,&rect);//获得客户区位置坐标信息
  65.                         DrawText(hdc,TEXT("大家好,这是我的第一个窗口程序!"),-1,&rect,
  66.                                 DT_SINGLELINE|DT_CENTER|DT_VCENTER);//一行,居中,垂直居中
  67.                         EndPaint(hwnd,&ps);
  68.                         return 0;
  69.         //此段后加
  70.         case WM_LBUTTONDOWN://左键按下
  71.                 MessageBox(NULL,TEXT("哎呀,我被按了一下"),TEXT("啊,舒服"),MB_OK);
  72.                 return 0;

  73.         case WM_DESTROY://关闭的消息,下文可以部署代码(例如:保存、退出)注:不可挽回窗口(详见小甲鱼视频)
  74.                                 PostQuitMessage(0);//发送退出消息
  75.                                 return 0;
  76.         }
  77.         return DefWindowProc(hwnd,message,wParam,lParam);//操作系统以默认方式处理消息
  78. }
  79. /*程序结束*/
复制代码
就是这些了

评分

参与人数 2荣誉 +10 鱼币 +15 贡献 +5 收起 理由
~风介~ + 5 + 10 + 2 感谢楼主无私奉献!
freeparty + 5 + 5 + 3 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-23 09:16:47 | 显示全部楼层
本帖最后由 qwerdfb2418 于 2015-3-23 09:46 编辑

大家还是要多打几回。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-23 09:19:47 | 显示全部楼层
本帖最后由 qwerdfb2418 于 2015-3-23 09:47 编辑

顶起。由于是学生没有钱啊...否则充值支持下小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-23 09:48:38 | 显示全部楼层
希望大家帮我顶一下...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-23 12:44:02 | 显示全部楼层
谢谢楼主哦。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-23 12:44:10 | 显示全部楼层
我来支持一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-23 20:23:40 | 显示全部楼层
表示正好用得上,谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-6 20:58:30 | 显示全部楼层
还是整套mfc来注释吧,这些都太……:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-7 17:40:46 | 显示全部楼层
支持一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-22 18:23:24 | 显示全部楼层
谢谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-25 17:59:12 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-9 11:00:34 | 显示全部楼层
不错,感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 14:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表