然后我发现我弄错了,B1=C2,B2=C1了。
B代表按钮,C代表类。
我可以把他们换过来吗?怎么操作。还有不明白的一点,
为什么不是类的一个对象和按钮关联,而是按钮直接与类关联。
1,我们建立的类会变成一个对象吗?
2,对按钮的操作都是通过类还是“类的对象”传递消息(比如鼠标单击,双击,移动上去)?
3,MFC所有的代码都包含在5个类中吗?外面是不是还有一个不在类中的CPP文件对类进行调用呢?
B代表按钮,C代表类。
我可以把他们换过来吗?怎么操作。还有不明白的一点,
为什么不是类的一个对象和按钮关联,而是按钮直接与类关联。
1,我们建立的类会变成一个对象吗?
2,对按钮的操作都是通过类还是“类的对象”传递消息(比如鼠标单击,双击,移动上去)?
3,MFC所有的代码都包含在5个类中吗?外面是不是还有一个不在类中的CPP文件对类进行调用呢?
解决方案 »
- 用WinHttpSendRequest实现上传,有代码例子参考谢谢!
- 多线程断点http下载的几个问题
- 用FOR循环来延时,为什么不起作用?
- 有关DLL函数名被篡改的问题
- 请高手指点:如何用UDP实现局域网内的高速稳定的文件传输
- 下载多个文件,必须每次都重新创建 CFtpConnection *Ftp_Conn吗
- 数组的引用做函数参数的问题
- 关与几种DLL的区分和用法
- mfc比较复杂的界面如何做到控件随窗口变化大小
- vc6.0中创建的MFC类下添加的小类的头文件“#import……”如何注释掉
- LINK : fatal error LNK1181: cannot open input file的问题
- 求助各位大侠,关于滚动条的问题
1,我们建立的类会变成一个对象吗?
可以,你为控件添加控件类型的成员变量,此时类就实例化了。
2,对按钮的操作都是通过类还是“类的对象”传递消息(比如鼠标单击,双击,移动上去)?
按钮和其他控件有父窗口,比如对话框,如果是拖动控件,对话框会自动进行消息的控制和数据的交换。
当然,某些自定义消息也可以由控件自己控制。
3,MFC所有的代码都包含在5个类中吗?外面是不是还有一个不在类中的CPP文件对类进行调用呢?
你说的是CView、CDoc类吗?
MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。
重要的有
CWnd:窗口、视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton等等;CDocument文档,CDC设备文本等
直接把ID对调就行
直接把ID对调就行,确实可以这样做
为什么不是类的一个对象和按钮关联,而是按钮直接与类关联。
1,我们建立的类会变成一个对象吗?
类只要被实例化就会生成一个对象,针对一个类可以生成多个类对象。
比如“人”是一个类(Class Human {...} ) 那么针对这个类可以根据构造函数的参数列表生成诸如“张三”,“李四”的具体对象。
2,对按钮的操作都是通过类还是“类的对象”传递消息(比如鼠标单击,双击,移动上去)?
问题看的不是特别明白,这样说吧。
按钮按钮,当然基本是按了,所以常规的操作是响应点击消息。当然移动上去响应某个消息也可以实现(获取响应的坐标)。另外,MFC中,按钮只是控件的一种,其他很多文本框、列表等空间都可以尝试使用,每个空间本身确实也是类,但这些类一般作为其所在父窗口位置(比如对话框)的成员变量存在,可以拖动创建,也可以通过代码直接创建,具体空间类中存在的成员变量和操作方法可以参照MSDN,很详细。3,MFC所有的代码都包含在5个类中吗?外面是不是还有一个不在类中的CPP文件对类进行调用呢?
你说的是CView、CDoc类吗?
这么说吧,MFC是有main函数的,但是对你是不可见的,这个你暂时可以完全忽略。
结构上,MFC都会有一个App类,代表这个应用程序,一般还会自动生成一个CAboutDlg类,这个相关版本信息你暂时也可以忽略。然后,最简单的是创建一个基于对话框的工程。除了上面两个类之外,它还会生成一个主对话框类代表主界面的对话框。如果是单文档工程的话,需要着重操作的是..View和..Doc类,还有一个MainFrame控制主框架的布局。多文档会有子View类,基本这样。具体能说的很多,你可以找相关的资料书籍学习。
5个类,太小看MFC了,不算你自己写的类,你去MSDN上查看下,包含控件类、窗口类、绘图类、字符串操作类、模版类、线程类、网络通信类在内上百个类呢。学习的话可以有针对性的慢慢学。最后,你换按钮的问题。
我理解的同样是你想交换两个按钮的功能,这样直接换ID确实可以实现(如果是托出来的按钮)。
理解下这段代码吧,消息响应的绑定BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
//{{AFX_MSG_MAP(CTestDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
注意,修改ID后重新编译下(重新组建),否则可能会看不到效果的。