VC里面源代码中所创建的各个类是不是对应着不同的窗口,一个类对应一个窗口,对吗?如果要窗口响应消息是不是就要在这个类里面进行消息映射?
解决方案 »
- 用loadImage在picture控件上加载了位图,想实现点击按钮删除图片功能,怎么实现了
- ActiveX中使用GDI+的问题
- .SCB是个什么东西,百度不到
- c++ api如何用管道获取控制台程序的标准输出和标准错误输出
- 串口通信问题
- 求object-oriented methods:principles & practice
- 请教为什么读取的文本文件都跟着乱码(VC2005使用 Unicode 字符集)
- 为什么 CDocument::CanCloseFrame() 这个虚函数无法重载?
- 用派生的recordset类在打开时的问题仍然存在,困惑!
- 如何将CComboBox中的编辑属性取消
- 共享一份模拟MFC和WTL对Windows窗口框架代码 有兴趣者请跟帖
- 图像放缩问题
只是在为了便于操作的时候才需要为某类窗口创建一个类作为模板,提供统一的方法来操作这类窗口,因此 SDK 中不需要类也可以完成窗口的所有操作
而类不仅仅是针对窗口的,任何一个有特征的对象(例如缓冲区、例如设备)都可以专门为之生成一个类来便于处理
建议楼主先看看C++的基础,不要操之过急
{
public:
A() { a = 3; }
private:
int a;
};
上面是一个类,但是跟窗口毫无关系
ShowWindow(...)
这些函数可以操作窗口,但不一定要在一个类中使用
你可以直接在 WinMain 函数中调用它们
//////////////////////////
有些类没有窗口,照样可以接收消息
比如CWinApp
现在你来到草园,OK,有一匹马站在你面前,你看了一下,认出这是马,那么这个过程就是你在脑海里将马这个字实例化了,成了你面前的这匹马。程序是一样的,类只是一个定义,表明定义的这个东西是什么样的,能干什么,但仅仅是个定义。你必须对它实例化,让这个类成为内存中真正的对象,对象才能真正的表现出它的样子,做该做的事。每一个窗体类对象就是一匹实际的马,它完全对应于一个窗口。一个类就是词典里的“马”只是一个类别,没有任何的实在的东西,当然也就不会对应到窗口了。
建议楼主看一下《windows程序设计》
“如果要窗口响应消息是不是就要在这个类里面进行消息映射?”
基本如此。
------------------------------------------------------------------------------------------你可以理解成为VC里的每一个窗口都对应一个(CWnd或CWnd的派生类,比如CDialog,CView,CFrameWnd等等)的实例对象,因为派生自CWnd, 所以这些窗口(对象)就可以接收窗口消息,如WM_CREATE,WM_SHOWWINDOW 以及非窗口的所有消息(非CWnd类则无法接收窗口消息)-----------
而你最初提出来的问题,一个类对应一个窗口,则正如我所说的相反,非CWnd派生类则几乎都没有窗口,我说的只是MFC相关内容
如果要窗口响应消息是不是就要在这个类里面进行消息映射?建议先看看window的消息映射原理和VC的基本消息传递方式