『壹』 怎样在VS2010的基于MFC对话框程序中添加菜单栏
VS2010的MFC对话框程序中添加菜单栏的过程,我大致分了这五步。
一、将Menu加入Resource视图中
在WorkSpace中的Resource视图下,在任意一个文件夹图标上,右击选择Insert(插入)选项,在弹出的对话框中选择Menu以后,再点击,new按钮,菜单就会添加成功了,但是现在还没有完成,还不能进行编译,因为现在的菜单时空的,在编译的时候会被清除的。
二、用菜单编辑器添加菜单栏及菜单项
菜单添加成功后,菜单编辑器自动打开,可以在其中添加菜单栏及菜单项,比较简单。
三、将菜单加载到你的对话框
第一步中添加一个菜单项,这是菜单就真正的加到了你的工程中了,接下来就是如何将菜单加载到你的对话框中了。
打开你新加入的菜单项,单击“项目”-->“添加现有项”,在这里选择已有的类,就是你要为其添加菜单的对话框的类,例如,***Dlg.cpp。然后确定。
四、在相应的文件中添加代码
打开对话框头文件***Dlg.h,声明CMenu 变量,例如m_Menu;
打开***Dlg.cpp 文件,在***Dlg::OnInitDlg()中加入如下语句:
m_Menu.LoadMenu(IDR_MENU1); // IDR_MENU1为你加入的菜单的ID,在Resource视图的Menu文件夹下可以找到
SetMenu(&m_Menu);
这样就OK了,调试一下,菜单就已经出现在对应的对话框中。
五、利用向导生成菜单消息响应函数
选择项目下的类向导,选择类名为”***Dlg.cpp”,在“命令”选项卡下的“对象ID(B)”中,选择各子菜单项的对应的ID,然后在“消息(S)”中双击COMMAND消息。
这时会弹出对话框类,你可以更改对应子菜单项的函数处理名,然后点击确定。菜单消息响应函数生成完毕,加入你需要的代码。
『贰』 如何在VS2010中添加ActiveX控件及使用方法
方法1:
1、首先在在项目上面右击添加类,如下图所示:
image
2、点击添加ActiveX控件中的MFC类
image
3、找到需要添加的ActiveX类。
image
4、点击完成即可。
image
5、此时转到资源视图,打开如下视图。可能工具箱中并没有我们刚刚添加的控件。这时,需要我们收到载入。
image
6、右击工具箱中的选择项按钮:
image
7、在选择工具箱项中找到刚刚添加的组件即可。(注:ActiveX组件它是建立在OLE于COM技术基础之上的技术)
image
8、右击项目,使用类向导,添加变量以及事件映射。
image
方法2:
上面介绍的方法过于臃肿,其实还有简单的方法。
1、直接右击,选择添加ActiveX控件即可。
image
2、然后找到自己需要添加的控件名称
image
3、完成后,右击,可以为控件添加变量以及添加事件处理程序与Dlg类建立联系。
imageimage
注:选择自定义的控件。即ActiveX控件会自动添加对应的类。这样就可以使用了。不过,这种方法需要重复使用。
还有就是这种方法与上面方法添加的类,有点小区别,但建立的类,无论是.h文件还是.CPP文件内容差不多。
对比以下两张图,分别是对同一个控件添加成员变量以及事件处理程序。
对于第一张图,它会在Cdemo4Dlg类中生成定义好的成员变量,以及控件本身生成的类。
注:类的生成要看控件的种类,自定义的控件,比如说ActiveX控件它会自动生成一个单独的类,而系统本身自带的控件并不会生成一个单独的类。
对于第二张图,它是针对Cdemo4Dlg类中生成的方法。
1: BEGIN_EVENTSINK_MAP(Cdemo4Dlg, CDialogEx) //表示时间映射的开始
2: ON_EVENT(Cdemo4Dlg, IDC_MONTHVIEW1, 4, Cdemo4Dlg::SelChangeMonthview1, VTS_DATE VTS_DATE VTS_PBOOL)
3: END_EVENTSINK_MAP() //表示时间映射的结束
4:
5:
6: void Cdemo4Dlg::SelChangeMonthview1(DATE StartDate, DATE EndDate, BOOL* Cancel)
7: {
8: // TODO: 在此处添加消息处理程序代码
9: //int iYear = m_Month.get_Year(); //此m_Month为我们定义的成员变量。
10:
11: }
image
『叁』 VS2010中MFC工程有关数据库的操作。
有很多办法了
我常用的两种办法,一个是用cdatabase类建一个对象,调用成员函数open函数可以连接到数据源了,用crecordset对象将前面的database对象传给他,然后调用crecordset对象的open函数,可以连接具体表
还有一个办法初学者好直接用,就是直接创建一个类继承crecordset对象,然后会提示你连接数据源和默认表,后头建一个该类对象就可以用他的成员函数直接调用了,用open重新打开某个表,movefirst和movenext,getfieldvalue来取值
你可以去网上下个程序看看