MFC 与 第三产业的关系 什么是句柄
mfc帮我们和windows对话,MFC是个服务公司
MFC相当于一些第三产业,比如餐馆.比如企业ISO9000认证咨询公司.比如营业执照代办机构.
所有的原因是因为这些东西都很复杂,所以我们引进了MFC来帮我们的忙.
其实跟认证咨询公司帮我们准备报表,然后帮我们联系认证机构一样.MFC就是通过API和WINDOWS这个上帝进行交流.我们自己可能记不住怎么和上帝聊天的规范,但MFC知道那些流程.如果你自己会讲你在MFC帮你说的时候你也可以自己插嘴说两句,这样直接一点.
先讲讲跟WINDOWS上帝说话的时候的要素. 最关键的是句柄(内存地址),因为在WINDOWS的概念里只有内存空间地址. 比如你求WINDOWS帮你在你的程序的窗口上写一个字(记住,其实是WINDOWS帮你写的,别以为写上几个代码就会在屏幕上写字),那你得告诉WINDOWS 你的窗口内存的地址,然后告诉它在什么坐标上. 这个时候WINDOWS 就找到那个内存地址,然后 通过坐标计算出相对空间位置加上内存地址, 这时候就在那里写上字. 然后其他的部门(显示驱动程序)会把字写到屏幕上
上面的操作,如果你自己跟WINDOWS说,那得做两件事,第一件是获得句柄,第二件申请.
如果叫MFC做,他在VIEW里面给你一个CDC指针,你只要叫CDC的成员函数帮你TEXTOUT就可以了,句柄它会帮你搞定.
程序是一个进程,你的程序分配到的内存被包成一个整体,你在程序里得到的指针是从0开始的相对指针,句柄是绝对指针.句柄是在你向WINDOWS对话的时候用的.平时自己用的时候只要用相对指针就可以了.MFC就是帮你隐藏绝对指针,让你觉得你的世界是从0开始的完美的世界.可偏偏有些时候还是被我们发现,老鸟觉得很自然,新手就困惑了,为什么要用句柄.如果你想让WINDOWS给你做事他用的是句柄,就好比美圆是国际通用的.如果你在自己的程序国家里做什么用用人民币,如果你想用人民币在国外买东西,那就得找银行兑换.MFC也有这样的功能,而且还可以帮你代理做任何事情.就好比网上购物一样,但你进行的是虚拟的操作,你看到的也只是产品的图片.