插入Dialog
IDD—Test
2.给备漏
此对话框,关联一个类
3.在希望仿答烂出现对话框的函数中添加代码:
(比如单击按钮d出对话框,则在单击按钮的消息函数实现中添加代码)
类名
dlg
dlg.DoModal()
//这个是模式对话框
【模态】
void
CDialogView::OnViewModaldialog()
{
//
TODO:
Add
your
command
handler
code
here
CDialogModal
cDlg
cDlg.DoModal()
}
【非模态】
void
CDialogView::OnViewModallessdialog()
{
//
TODO:
Add
your
command
handler
code
here
//如果指举哪针指向NULL,说明对话框还没有创建,则动态创建
if(m_pModallessDlg==NULL)
{
m_pModallessDlg=new
CDialogModalless
m_pModallessDlg->Create(IDD_MODALLESS_DIALOG,this)
}
//显示非模态对话框
m_pModallessDlg->ShowWindow(SW_SHOW)
}
这里有个笨办法,不过基本上可以实现导入其他项目对话框(写得很繁琐敏散昌,不过只要做过一遍基本上就可以记住所有步骤了,因为其原理比较简单)。前提:1.已经做好的那个对话框不是新建立工程时默认提供的对话框(也就是说需桥扒要自己新建一个对话框来实现你要的功能,我这个方法如果导入默认提供的对话框的话会出错,具体原因我也正在探索)2.对话框、空间的ID要自己取(我不知道在MFC里子对话框的控件ID会不会和主对话框冲突,我没试过,但是要开发软件的话,这种约定俗成的东西也不用我多说了吧)3.确定即将导入的对话框的ID和工程里resource.h里定义的宏、还有待导入对话框头文件里的对话框数据(就是enum { IDD =... }这个东西)要保持一致,不然可能d不出指定对话框。步骤:1.导入对话框的头文件和源文件,以及该对话框所涉及到的所有文件(比如bmp图片等);2.如果有涉及其他文件,可能需要重新修改这些文件的ID(感觉相当麻烦),如果没有则可略过掘烂此步;3.在导入对话框的源文件里,将其include的应用类头文件更改为当前工程的应用类头文件(如果略过此步进行编译的话,VS平台也会在此提示找不到头文件)4.可以用记事本打开resource.h文件,在此定义对话框的相应对话框和控件的ID,注意其值不能重复,最好是在导入对话框的工程里找到对应的值拷贝过来,然后再适当修改。打开VC++6.0,选择 文件(file)->新建(new)在d出的对话框中选择->工程(projects)
"选中"MFC AppWizard(exe) 后在右边的 ‘工程帆则名称(Projects name)'中写 'VcMatlab ',
点击 确定(Ok)
选择 基于对话框(Dialog based)-》点击 完成行告(Finish)-》再点 确定(Ok) 建立完态带棚毕。
在出现的界面中,用鼠标点下右边的工具条上的 按钮(Button)-》在右边的对话框上空白处按住鼠标左键拖画出一个按钮。
在这个新画出按钮上右键或按回车出现属性(properties)对话框,在左边的ID 中改成IDC_VC_MATLAB,右边的 标题(Caption)中写按钮上的文本。
双击这个按钮后出现对话框点OK 或
右键它或在视图(view)选择 建立类向导(ClassWizard),在出现的 MyClassWizard对话框 中的 Messages下选择 BN_CCLICKED 在右边的 Add Function 可以用了,单击它后点 Ok 。再点Edit Code 就出现你要的消息处理函数了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)