框“Add Member Function”,添加相应得成员函数名(可以使用默认名,也可以自己添加),如添加函数名“OnTest_Item1”,然后按“OK”Button,此时“MFC Classwizard”最2
下面的 “Member functions” 栏目内出现一行新内容 “OnTest_Item1 ON_ID_ OnTest_Item1: COMMAND” 。最后按“OK”Button结束,退回到VC++主界面窗口。查看 “MyfirstCppView.cpp”发现在最后面增加了下面一段
程序: void CMyfirstCppView::On_Test_Item1 () { // TODO: Add your command handler code here } 这段程序即为菜单选项“Test”中的“Item1”项的消息响应函数,该函数的原型也 自动出现在相应的头文件“MyfirstCppView.h”中。当然,这个函数目前只是个框架而 已,尚不能做任何事情,具体代码将根据程序的需要由编程者自行添加。同时在 “MyfirstCppView.cpp”文件的开头部分的消息映射表(MESSAGE_MAP)当中也出现 了以下新内容(灰色字) : BEGIN_MESSAGE_MAP(CMyfirstCppView, CView) //{{AFX_MSG_MAP(CMyfirstCppView) ON_COMMAND(ID_TEST_ITEM1, OnTest_Item1) //}}AFX_MSG_MAP // Standard printing commands ……………………….. END_MESSAGE_MAP() 同样方法添加菜单项“Item2”的消息响应函数,然后重新编译程序,完成菜单消息 响应函数的添加。 再次运行程序, 点击菜单项 “Test” , 见其下拉项目 “Item1” 和 “Item2” 变为黑色(有效),可以点击,但点击后并无任何反应。 5. 菜单项Ckeck状态(√)的控制: 下拉菜单的每个条目前面可以用“√”标出是否该项已被选中。添加Check标志的具体 步骤为:
(1) 先在相应的Header File中添加一个字串变量,如在“MyfirstCppView.h”文件 中加入下面一行:
CString ItemStatus;
(2) 用Classwizard工具创建“OnCreate”函数: 在Classwizard对话框内将“Class
name”栏选为“CMyfirstCppView” , “Message”栏选“WM_CREATE” , 此时 对话框右侧的“Add Function”Button变亮,点击“Add Function”按钮,然后 按“OK”Button。在MyfirstCppView.Cpp文件中出现下面函数:
int CMyfirstCppView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}
双冒号(: : )前面是类名,后面是函数明,表示函数OnCreate()是属于 CMyfirstCppView类的成员函数。在该函数里添加下面一行,对变量ItemStatus进
3
行初始化: ItemStatus = "OFF"; (3) 在On_Test_Item1()函数中添加下面代码: if (ItemStatus == "ON") ItemStatus = "OFF"; else ItemStatus = "ON"; (4) 利用Classwizard创建 “OnUpDateItem1” 函数: 在Classwizard对话框内将 “Class name”选为CMyfirstCppView, “Object IDs”栏选“ID_TEST_ITEM1” ,右边 “Messages”栏目选“UPDATE_COMMAND_UI” ,按“OK”钮,在 “CMyfirstCppView.Cpp”文件中出现下面代码段: void CMyfirstCppView::OnUpdateTestItema(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here } 在该函数内添加下面一行: pCmdUI->SetCheck(ItemStatus == "ON"); (5) 重新编译并运行程序,发现菜单项“Test”=>“Item1”开始时未被选中,按一 次该项变为选中(其前出现√),再按一次又变为未选中。 6. 创建对话框: 两种方法可以进入对话框资源编辑状态: 1) 在VC++编译器主界面左侧的项目文件管理 对话框内选择下方的“ResourceView” ,然后将光标放在“Dialog”上点击鼠标右键,在弹出 的对话框内选“Insert” ;2)在VC++主界面的菜单中打开“Insert”项,点击“Resource”再 点击“Dialog” ,进入对话框编辑界面,并出现一个默认的最简单的对话框,只包含