vc++深入理解笔记

1.c++窗口类和窗口不一样 窗口类和窗口唯一的联系就是窗口类比如Cwnd里面的成员变量m_hwnd,窗口销毁的时候,while循环里面的Getmessage(….)里面的参数m_hwnd设置为null,但是这个时候窗口类还没销毁,因为这个时候winMain函数还没执行到最后,窗口类的生命周期是在winmain函数的最后的}右括号那里。

但是若是窗口类销毁了,那么与之相关的窗口句柄m_hwnd也销毁了,窗口也销毁了。

2.若是自己定义的成员函数和window api的函数名字一致,那么windows api 类的成员函数前面必须加上::

3. IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds错误:

修改如下设置:工程(Project)->属性(Properties)->配置属性(Configuration Properties)->c/c++->代码生成(Code Generation)->运行时库(Use run-time library)->多线程调试DLL(/MDd)(Multithreaded DLL/Debug Multithreaded DLL)

4.搞不懂为什么在孙鑫的书上面新建一个btn,用vs2008的时候就能在标题栏,菜单栏下面显示 但是用vs2010的时候,他就在标题栏下面显示了,占据了工具栏和菜单栏的位置.???

5.什么叫注释宏?

6.关于MFC中的消息映射机制

image

是不是说这样的话就能省掉虚函数表里面的那些不必要的空间,因为不管你是否覆写原函数,都会分配一定的空间的,继承层次越多,空间越多,但是消息映射机制就是说需要的时候才会占据空间,不需要覆写的或者说自己没有定义的消息和消息函数都不会分配.

过程是这样的:

窗口返回来的消息---->得到对应的消息句柄--->消息句柄和c++对象对照表找到c++对象指针--->子类中对消息相应函数的定义-->调用该响应函数

7.在mfc里面使用字符转化的时候,一般有时候会告诉

错误    2    error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“char [20]”转换为“LPCTSTR”    e:\vsworkplace\cpp\mfc\mfcview.cpp    153    1    MFC

这个将项目的属性的编码从unicode改成多字节字符,多字节字符能帮助将代码本地化,转化为本地适应的字符编码

8.为什么不需要使用getobject()将画刷加入到dc里面去?

image

9.在添加菜单的时候,直接添加,然后需要在下拉菜单里面添加选项,右击 “1”,然后选中添加事件处理程序,然后确定。这就添加了test菜单的处理程序。

要对menu代码进行编辑的话,点击**VIEW类的类向导,对WM——CONTEXTMENU消息进行处理,点击编辑代码。

image

10。 wm开头的基本上都是标准消息(wm_command除外) wm——command消息是按钮或者菜单消息

image

11.是这样的吗

image

12.MyTest* mt = new MyTest;//指针必须初始化 类的指针初始化如此 指针使用的时候必须要进行初始化

posted @ 2013-05-24 09:00  no13bus  阅读(368)  评论(0编辑  收藏  举报