2013年3月13日MFC学习笔记

1.昨天看完了孙先生的第一个视频,试着把他的程序完整地背一遍下来,顺便捋顺一下思路。他是用的Win32Application。

首先是头文件,要包含windows和stdio,涉及到了C语言的库。

然后是主函数。参数太多记不住,就直接在MSDN上找,然后ctrl+C、ctrl+V。(注意把复制的;去掉,昨天就是直接复制过去,后面出bug还纳闷了半天呢。)

然后开始编写函数主体,首先定义一个窗口类,即WNDCLASS;再对类中的各个参数进行初始化赋值(借助于VC助手,不需记忆,很方便)。

擦。。一整天都快过去了,参数初始化赋值还没完,我效率是要有多高啊。。。我要是老板,一分钱都不给。唉。。。

WNDCLASS有十个参数。挨个说一下吧,不然又记不住(这脑子)。

UNIT style——窗口类类型。CS_VREDRAW:窗口垂直坐标发生变化时重画;CS_HREDRAW:窗口水平坐标发生变化时重画。cs:Class Style

WNDPROC lpfnWndProc——回调函数。系统调用。程序猿编写。(这里只是要函数的地址,lp么,长指针。不要跟我一样傻得把函数参数什么都要写上。)

(孙先生提到根据功能猜函数的方法,肯定不是没有道理的。刚刚我就猜中一个。ShowWindow函数中的参数开头一定是SW_,哈哈,果然猜中了。)

int cbClsExtra:类备用内存空间吧

int cbWndExtra:窗口备用内存空间

HINSTANCE hInstance:实例

HICON hIcon:图标,即打开应用程序窗口左上角的小图案。

HCURSOR hCursor:光标,鼠标在窗口中显示的形状,如十字,箭头等。

HBRUSH hbrBackground:画刷,窗口背景颜色

LPCTSTR lpszMenuName:菜单名,lp长指针,str字符串,就知道该如何赋值了。没有菜单自然为空

LPCTSTR lpszClassName:类名。程序猿命名。

在MSDN上查看ClassName的介绍,提到一个RegisterClass函数。

---------------------------------------------------------------------------------------------------------

2.我的效率啊,现在是2013年3月14日早。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

继续之前那个RegisterClass,是指注册窗口的函数。

第一。设计一个窗口类(这个我在分割线之前就完成了)

第二。注册窗口类(就是在ClassName中介绍的RegisterClass函数)

第三。创建窗口(Create)

第四。显示及更新窗口(Show & Update)

根据步骤,从中文我们就可以猜出他涉及到的英文函数。CreateWindow   ShowWindow   UpdateWindow,再通过MSDN求证就可以了。

吃个苹果先

----------------------------------------------------------------------------------------------------------

为什么要注册窗口类?看MSDN:The RegisterClass function registers a window class for subsequent use in calls to the CreatWindow or CreateWindowEX function.

注册类函数就是为之后调用创建窗口函数服务的。

根据上面步骤可以知道注册完窗口类就是创建窗口和更新窗口了。可以根据VC助手提示的函数参数调用,极其方便。

----------------------------------------------------------------------------------------------------------

以上窗口即创建成功了,但是要窗口作出响应,肯定要去获取消息。MSG。

利用while判断消息,并作出响应。分别涉及到的函数有GetMessage(获取消息)   TranslateMessage(翻译,虚拟键值消息转换为字符消息)    DispatchMessage(发送消息到系统程序,典型应用在发送通过GetMessage获取的消息)

-------------------------------------------------------------------------------------------------------

到此为止,主函数写好了。还记不记的之前曾调用一个回调函数,现在开始写。在主函数前,先声明,直接MSDN复制粘贴顺带改个名字就OK了;然后在主函数后开始定义。

回调函数,即根据特定的消息进行判断,把消息传递给特定的windows进程。

用一个switch来对消息进行筛选(我居然连switch基本书写规则都不清楚!),我们可以根据需要对某些消息进行响应,而对某些消息不作出响应。例如按下按键,窗口要怎么做;鼠标左键单击,窗口会怎么做;等等等。

整体思路就是这样。不知道我程序是怎么写的,昨天边看视频边码的编译运行结果居然不一样。。。这让我很忧伤啊,难道还要再重复看一遍视频么?

Today就先that's all好了,tomorrow继续吧。








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值