鱼C论坛

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

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

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

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

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

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

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

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

评分

参与人数 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-6-15 08:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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