VS2005用MFC制作一个菜单,怎样单击菜单选项后弹出对话框 我出现的一个问题:在vs2005,mfc中,点菜单弹出对话框...

作者&投稿:匡垂 (若有异议请与网页底部的电邮联系)
方法有很多
先说个最简单的
1. 在工程的资源里面加1个菜单和3个对话框(假设ID是IDR_MENU1, IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3);
2. 在菜单添加要的选项, 对话框里面拖你要的控件
3. 在主对话框的OnInit函数里写以下代码
CMenu* menu = new CMenu;
menu->LoadMenu(MAKEINTRESOURCE(IDR_MENU1));
this->SetMenu(menu);
到现在我们已经把菜单加到主对话框里了, 节下来是响应菜单项
4. 对menu的某一项右键, 添加一个COMMEND MESSAGE, 系统会自动生成一个函数, 在函数里面写以下代码
// TODO: Add your command handler code here
CDialog* dlg = new CDialog;
dlg->Create(MAKEINTRESOURCE(IDD_DIALOG1));
dlg->ShowWindow(1);
5. 其他两项也一样的做法

我用vs2005 MFC制作了菜单,点击菜单后能弹出非模态对话框,请问怎么关闭这个非模态对话框?~

你好!不知道你是怎么创建的,一般在资源文件中插入一个对话框,创建时通过ID关联。打开对话框之后就可以点关闭或者OK按钮关闭的呀!
下面是创建代码:
CDialog *dlg=new CDialog();
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_NORMAL);

你确定按钮消息响应事件是在子对话框类中,而不是主对话框吗?除了这个,没代码想象不出别的什么原因。另外,你主对话框。。。基于对话框,有菜单?

mfc制作菜单,菜单竖着,这么让他横着?
答:在菜单上右键,选view as popup

MFC中菜单响应函数如何创建?
答:MFC基于对话框——右键弹出菜单,并响应函数。\x0d\x0a 1、新建一个菜单资源,比如把菜单的ID号为IDR_MENU1。\x0d\x0a\x0d\x0a 2、在ClassWizard中\x0d\x0a\x0d\x0a void CArcSoft_EffectDlg::OnRButtonDown(UINT nFlags, CPoint point)\x0d\x0a\x0d\x0a {// TODO: Add your message...

怎样用MFC做一个图形界面程序
答:给你个最最简单的MFC程序。你可以打开2005 新建win32 程序 建立空项目 然后编写如下代码//hello.cpp include <afxwin.h> // 说明应用程序类 class CHelloApp : public CWinApp { public:virtual BOOL InitInstance();};// 建立应用程序类的实例 CHelloApp HelloApp;// 说明主窗口类 class CHello...

怎样使用MFC创建一个窗口类
答:UINT style;//class style WNDPROC lpfnWndProc;int cbClsExtra;int cbWndExtra;HANDLE hInstance;HICON hIcon;HCURSOR hCursor;HBRUSH hbrBackground;LPCTSTR lpszMenuName;LPCTSTR lpszClassName;}WNDCLASS;第二步:用RegisterClass(&wndclass)来定义的窗口注册。第三步:创建窗口 1)定义一个句柄,然...

vs2005如何制作MFC自定义控件?并可添加到工具箱中复用
答:从cbutton类中派生一个类,处理鼠标按下和抬起消息即可。

MFC中设计弹出式菜单出现错误,我在MFC中添加了一个单击右键的事件,但 ...
答://好吧,你这样调用没人知道你想调用那个菜单里面的子菜单//而且你想调用一个参数的GetSubMenu需要使用的是CMenu的成员函数://CMenu::GetSubMenu//CMenu* GetSubMenu( int nPos ) const;//但是你直接调用了函数,所以他以为你调用的是sdk的函数://HMENU GetSubMenu(HMENU hMenu,int nPos);//...

使用VS 2005中的MFC 按钮问题
答:因为窗口主线程一直处于循环中,一直繁忙,所以无暇接受Windows消息,不能接受消息,按钮将失去作用,因为按下按钮这个操作是窗口通过接收消息来作出响应的。所以你的程序逻辑出错了。解决的办法需要您参考多线程编程,将ThreadFuncWriteLock作为一个单独的线程启用,这样这个线程的循环将不会影响到主线程的运行...

求用MFC建一个“hello world”窗口。 求代码跟具体操作步骤。能在VC6...
答:下面介绍怎样使用AppWizard 创建一个Win32窗口程序示例HelloWorld,步骤如下: 1. 在File菜单上,单击New菜单项,弹出New对话框。 2. 在出现的对话框中选择Projects 标签,从左边的列表框中选择项目类型: Win32 Application,在Project name框中,输入新项目名:Ex1_2,并指定项目存贮位置,如图1-36 ...

怎样在VS2010的基于MFC对话框程序中添加菜单栏
答:VS2010的MFC对话框程序中添加菜单栏的过程,我大致分了这五步。一、将Menu加入Resource视图中 在WorkSpace中的Resource视图下,在任意一个文件夹图标上,右击选择Insert(插入)选项,在弹出的对话框中选择Menu以后,再点击,new按钮,菜单就会添加成功了,但是现在还没有完成,还不能进行编译,因为现在的菜单时空的,...

VS2005中MFC的GetLine如何使用?
答:value is 0 if the line number specified by nIndex is greater than the number of lines in the edit control.你这样用就可以了:LPTSTR str=new char(或wchar_t)[一行最大的字符数];memset(str,0,一行最大的字符数);//或wmemset(str,0,一行最大的字符数);GetLine(第几行,str);...