在MFC编程中,对句柄的迷惑
在SDK编程中,句柄是windows对象,本身是系统级的,比如GDI对象,都可以用句柄来表示,common control 和 control 也可以用句柄来表示,在编程时,通常经调用API的返回值获取句柄.
但是,在MFC编程中,有一句话请我迷惑:
Void CMyApp::OnFileNew() //"FILE->NEW"菜单命令的句柄,为什么这个类函数也
可以叫句柄????
{
m_ptDefaultTemplate->OpenDocumentFile(NULL);
}
问题点数:50、回复次数:14Top
1 楼danmao(愤怒的小mao)回复于 2003-02-02 11:17:57 得分 0
谁说的是句柄?
Top
2 楼smilingdeng(笑笑的邓冲)回复于 2003-02-02 12:10:41 得分 10
把它看成是资源指针的代名词不就得了呀Top
3 楼HongHuer(Hello,world.)回复于 2003-02-02 15:03:38 得分 0
//"FILE->NEW"菜单命令的句柄,为什么这个类函数也
可以叫句柄????
//没有吧,没有听说。
//是不是书上一不小心印错了呢?Top
4 楼liuhongyong(荒原困兽)回复于 2003-02-02 15:22:11 得分 0
那个好象不是什么句柄吧。
在SDK中一般都用句柄这个东西,可是在MFC中,好象一般用的是指向某个对象的指针吧。Top
5 楼qhgary(Gary)回复于 2003-02-03 19:50:30 得分 0
句柄不是指针,但是句柄又是windows编程中的指针。:)Top
6 楼tjroamer(Cpp高手)回复于 2003-02-03 21:49:35 得分 10
不是指针胜似指针。Top
7 楼sjrhpy(风中杨柳)回复于 2003-02-03 22:35:51 得分 0
我觉得句柄类似于DOS下的EXE中的控制块,有指针的意思,但可能还包括分配内存的位置、大小等东西。Top
8 楼XueBoy163(菜刀之恋)回复于 2003-02-04 00:08:02 得分 0
有一种说法是句柄是指向指针的指针。Top
9 楼zhourongbiao(Edward)回复于 2003-02-04 01:06:44 得分 10
我怀疑你搞错了,如果原文是英文的话,我猜测大概为:
handler of……或handle……,
这样的话OnFileNew()的注释为:对新建文件菜单的响应。
Top
10 楼xghost(菜鸟)回复于 2003-02-04 13:38:42 得分 0
有好几本有关MFC编程的书都这么写,其中一本叫《MFC经典问答》的例子就是这样写的,还有BCB的书籍中也有这么写的,我怀疑是翻释有误,正如楼上的zhourongbiao(Edward) 所说的应该是响应的意思吧,因为理由有四:
一、 句柄是属于windows系统的,不属于某种语言
二、C++的对象,类函数Void CMyApp::OnFileNew()是面向源码对象的,不属于
windows对象
三、Void CMyApp::OnFileNew()实际为函数,编译器应把它理解为C函数
void OnFileNew((CMyApp)this->...);
四、在网络编程中有一个概念socket在很多书籍中有多种释法,比如叫作
套接字、或叫插口,或叫网络接口,或叫插座,
所以我怀疑翻释有误,我觉得叫响应可能比较正确,各位有什么看法?Top
11 楼Cline(营营[无意苦争春,贯看群芳谢])回复于 2003-02-04 15:16:22 得分 10
编译者没有业务知识。
“你不会翻译,这不是你的错,你翻错,这就你的不对了”
国内译有点敬业精神好不好!!!!!!Top
12 楼danmao(愤怒的小mao)回复于 2003-02-05 17:52:15 得分 10
//处理"FILE->NEW"菜单命令
这个注释是对函数功能的说明。Top
13 楼xghost(菜鸟)回复于 2003-02-05 19:40:24 得分 0
原文可能是: HANDLE "FILE->NEW" MENU COMMAND
或者是:HANDLE of "FILE->NEW" MENU COMMAND
作者把 HANDLE 翻释成句柄了
我认为应该是“处理”的意思。
HDC 的英文解释如下:Handle to a device context (DC).
这个Handle才可以把它翻释成句柄。Top
14 楼XueBoy163(菜刀之恋)回复于 2003-02-05 22:05:37 得分 0
同意Top




