VS2017 MFC应用中添加模态对话框时为其添加类弹出如下错误
发布网友
发布时间:2022-04-22 21:59
我来回答
共2个回答
热心网友
时间:2023-10-05 06:19
MFC基于对话框——右键弹出菜单,并响应函数。
1、新建一个菜单资源,比如把菜单的ID号为IDR_MENU1。
2、在ClassWizard中
void CArcSoft_EffectDlg::OnRButtonDown(UINT nFlags, CPoint point)
{// TODO: Add your message handler code here and/or call default
CMenu menu; //定义下面要用到的cmenu对象
menu.LoadMenu(IDR_MENU1); //装载自定义的右键菜单;
CMenu *pContextMenu=menu.GetSubMenu(0); //获取第一个弹出菜单,所以第一个菜单必须有子菜单;
CPoint point1;//定义一个用于确定光标位置的位置;
GetCursorPos(&point1);//获取当前光标的位置,以便使得菜单可以跟随光标
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,AfxGetMainWnd()); //在指定位置显示弹出菜单;
CDialog::OnRButtonDown(nFlags, point1)};
这时,当右键点击对话框,就可以将菜单调出来了,如何响应菜单项有如下操作:
3、在资源视图中右键单击菜单项,建立类向导(ClassWizard),此时会弹出一个对话框,点击第二个,加入到已存在的类,按确定。
4、在资源视图中为菜单中的每一项建立类向导,并添加Command响应函数,然后在这个函数中加入语句就可以啦。
ON_COMMAND(ID_COPY, OnCopy)//加Command响应函数,自动出现的灰色语句
void CArcSoft_EffectDlg::OnCopy()
{// TODO: Add your command handler code here
MessageBox("复制成功!");
MFC文档的菜单栏中添加一个command响应函数
基于CFormView的应用程序,经常会在菜单栏中添加一个按钮,点击该按钮时,会弹出一个对话框~~
具体实现方式如下
1.新建一个对话框资源,同时新建一个对话框类和该资源对应,舍对话框类名为CTestDialog;
2.在资源视图中找到Menu 这个文件夹,双击里面的文件IDR_MAINFRAME,在这里可以添加自己想要的菜单,也可把原来的【文件】、【编辑】等菜单给删掉~~
添加菜单的方法:右击右侧空白区域,选择properties,弹出的对话框中,把pop_up勾选掉,添加一个ID和CAPTION,设ID为ID_MYTEST,caption|为【测试】
(要注意的是,最好选择View类,而不是Frame类或其他类)
3.Ctrl+W弹出类向导,message maps中的class name 选择为View类,
从Object IDs中找到我们上一步设置的ID_MYTEST,右侧的message选择Command命令,添加一个命令响应函数;
4.在该函数中添加
CTestDialog dlg;
dlg.DoModal();
5.对应的菜单项添加WM_COMMAND消息,在命令响应函数中DoModal/Create/ShowWindow()你的对话框即可。
6.消息映射:
ON_COMMAND(菜单编号,处理函数)
.h
public:
处理函数
.cpp
处理函数
{
CDialog dc;
dc.domodal();
}
弹出非模态对话框的方法:
(1)用类向导给菜单栏中菜单添加一个响应函数
(2) 在头文件中加入
#include "Dlg.h"
public:
CDlg *Dlg;
(3)在代码中加入
Dlg=new CDlg(this);
Dlg->Create(IDD_DIALOG1); // IDD_DIALOG1为对应的菜单栏中那个按钮的ID
Dlg->ShowWindow(SW_RESTORE);
弦的弦心距中有一组量相等那么它们所对应
热心网友
时间:2023-10-05 06:20
替换掉C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCWizards\CodeWiz\Simple这个文件夹就行了。有的安装后没有simple有的文件缺失,就会导致这个问题。你找个VS2015的换一下
mfc中显示模态对话框闪退
mfc中显示模态对话框闪退的解决办法:1、用new创建类对象,把对象创建到堆里,但是反复调用的对象不能这样,据说是反复分配释放内存,分配的内存大小不一的话,会产生大量的内存碎片。2、将弹出的非模态对话框这个实例对象作为主对话框类的成员,再在消息函数中调用实例对象的函数定义的ShowWindow函数,通过...
如图,VS2017新建MFC对话框之后,工具箱控件不可用怎么办?
1、启动VS2017软件。在VS2017界面的菜单栏中,点击“文件 > 新建 > 项目”,打开“新建项目”窗口。2、在“新建项目”窗口的左侧列表中,选择“已安装 > Visual C++ > MFC”,然后在MFC的模板列表中,选中“MFC Active X控件”。之后,可以设置项目名称和存储位置。设置完毕后,点击“确定”按钮确定...
mfc中显示模态对话框闪退
1. 注意对象创建的方式。使用`new`关键字创建的类对象会被分配到堆上。然而,对于那些需要被频繁调用的对象,这种创建方式并不适合。有报道称,这种方法可能导致内存分配和释放的不稳定,进而引起内存碎片问题。2. 确保非模态对话框的实例作为主对话框类的成员。在相应消息函数中,通过类的对象调用`ShowW...
如图,VS2017新建MFC对话框之后,工具箱控件不可用怎么办?
当然没法添加工具箱控件,正确的是在资源文件(resource)中找到后缀为.rc的文件,找到打开Dialog里的一个后面为-DLALOG的文件,就可以添加控件了,button一类的
MFC模态对话框一闪而过
其实是这个模态对话框跑到了主对话框后面去了,你看不见了,也点不到了,所以你没有办法关闭,你可以在模态对话框的 BOOL CXXXDlg::OnInitDialog(){ CDialog::OnInitDialog();::SetWindowPos(this->m_hWnd,HWND_TOPMOST,-1,-1,-1,-1,SWP_NOMOVE|SWP_NOSIZE);} 最前端显示,试试 ...
Microsoft Visual Studio 2017 C++如何添加窗体?
如果是控制台和win32项目是没有添加窗体的选项的 如果你说的是MFC的话 步骤如下:1 对着项目名称点右键 2 找到 添加 选项 把鼠标移到上面 3 找到 资源 选项并点击 4 在弹出的对话框中选择 Dialog 选项 5 点击新建 这样就得到一个对话框了 ...
VS2017中MFC调试总是报这个错。
炫彩界面库用户回答你, 这个是断言, 就是在哪个dll 中发现有错误, 调试找到那个函数, 就好解决.用炫彩界面库, MFC微软已经放弃了, 多年不升级了.
在MFC的模态对话框的组框中输出文本问题。。
在对话框里拉进去一个静态文本,将ID改为ID_STATIC_TEXT,用鼠标把长度和宽度拉大一些,保证能把你想要的文字全部显示出来,然后在classview里为它添加一个CString类型的变量m_sText,最后在对话框的OnInitDialog()中添加:m_sText = "你想要的文本";UpdateData(FALSE);...
在vs2017中生成静态库时显示编译错误:MSB802 不允许C++使用静态库,怎么...
项目属性-配置属性-常规-MFC的使用-使用标准Windows库(不用MFC)然后,C/C++-代码生成-运行库-多线程/MT或者多线程调试/MTd带d的是链接调试版本,DEBUG项目选/MTd,Release项目选/MT如果使用MFC,在MFC的使用中设置静态、动态链接,代码生成
模态对话框的建立模态对话框
1.选择File/New/MFC AppWizard[exe],Project name为Test,单击OK.2.选择Single document,单击Finish.3.选择左侧Workspace/ResourceView,在Dialog上单击右键,选择Insert Dialog,默认名字为IDD_DIALOG1.4.双击右侧工作区中的对话框,弹出一对话框Adding a Class,默认选择Create a new class,单击OK.5.在对话...