单文件C++MFC中如何显示对话框 对话框ID:IDD_DIALOG1

已有代码
//button1.cpp
#include <afxwin.h>
#define IDB_BUTTON 100
// 说明应用程序类
class CButtonApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
// 建立应用程序类的实例
CButtonApp ButtonApp;
class CButtonWindow : public CFrameWnd
{
CEdit *ce;
CStatic *cu;
CStatic *cv;
CButton *button;
public:
CButtonWindow();
afx_msg void HandleButton();
afx_msg void OnSize(UINT,int,int);
DECLARE_MESSAGE_MAP()
};
void CButtonWindow::HandleButton()
{
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
void CButtonWindow::OnSize(UINT nType,int cx,int cy)
{
CRect r;
GetClientRect(&r);
r.InflateRect(-300,-300);
button->MoveWindow(r);
}
BEGIN_MESSAGE_MAP(CButtonWindow,CFrameWnd)
ON_BN_CLICKED(IDB_BUTTON,HandleButton)
ON_WM_SIZE()
END_MESSAGE_MAP()
// 每当应用程序首次执行时都要调用的初始化函数
BOOL CButtonApp::InitInstance()
{
m_pMainWnd = new CButtonWindow();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
// 窗口类的构造函数
CButtonWindow::CButtonWindow()
{
CRect r;
// 建立窗口本身
Create(NULL,"CButton Tests",WS_OVERLAPPEDWINDOW,CRect(0,0,700,700));
//获得矩形大小
GetClientRect(&r);
r.InflateRect(-20,-20);
//创建按钮
cu = new CStatic();
cu->Create("Made by Trj\nUSE Visual C++\non 2011 8 4\a",WS_CHILD|WS_VISIBLE|SS_CENTER,CRect(0,0,700,50),this);
ce = new CEdit();
ce->Create(ES_LEFT|ES_AUTOHSCROLL|WS_BORDER|WS_VISIBLE|WS_CHILD|WS_TABSTOP,CRect(0,50,700,100),this,99);
//获得指向静态控件的指针
cv = new CStatic();
cv->Create("1",SS_BITMAP|SS_CENTERIMAGE|WS_CHILD|WS_VISIBLE,CRect(0,100,700,200),this,101);
button = new CButton();
button->Create("Close",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,r,this,IDB_BUTTON);
}

你先为对话框资源创建一个类,CTestDlg类,在要创建对话框的地方包含这个类的头文件,然后创建一个对象:CTestDlg testdlg;
testdlg.DoModal();就行了
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-18
1、资源视图-->Dialog-->右键-->添加资源-->新建-->对话框-->对话框按右键--添加类。
2、例如:
添加CMyNewDlg类,在所要调的代码中(按钮点击方法中),先加头文件#include "CMyNewDlg.h
",之后在按钮点击方法中:
void COnclickDlg::OnBnClickedOk()
{
CMyNewDlg Dlg;
Dlg.DoModal();
}
第2个回答  2011-08-08
动态创建一个
dlg = new CDialog();
然后用函数DoModal,调用。要注意传参,这属于非模态对话框
第3个回答  2011-08-08
找个InitInstance之后的一个地方
或者你自己试着看吧
CDialog dlg(IDD_DIALOG1,NULL);

dlg.DoModal();追问

为什么我插入后还不行?
错误信息:
error C2065: 'IDD_DIALOG1' : undeclared identifier
但我已加入了对话框

单文件C++MFC中如何显示对话框 对话框ID:IDD_DIALOG1
你先为对话框资源创建一个类,CTestDlg类,在要创建对话框的地方包含这个类的头文件,然后创建一个对象:CTestDlg testdlg;testdlg.DoModal();就行了

c++添加对话框报错:“IDD_DIALOG1”: 未声明的标识符
在Readdlg.h顶部加上一句:include "resource.h" \/\/ main symbols 试试看。

如何在MFC程序运行中自动弹出对话框并关闭
一、问题的提出 编写一个耗时的单线程程序:新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond(){ Sleep(6000); \/\/延时6秒 } 编译并...

MFC中的IDD是什么意思
IDD,是对话框资源编号的默认开头:IDD_DIALOG1,其中IDD表示Identify Dialog的意思 这与 C++ 的 常数 表示 有关, 早期 的MFC 是 使用 enum { IDD = IDD_DIALOG1 };来 表示 常数 即 const (-ant), 那时 使用 const IDD = IDD_DIALOG1 会有问题。这是为了好写对话框的架构. 因为不同的...

VC怎么打开对话框资源 IDD_commwizard_dialog
FileView”(文件视图)我们选择第二个“ResourcesView”,然后你就会看到“工程名 resources”,你的应该是“commwizard resources”,点一下“加号”,就可以展开,再点一下“Dialog”(对话框)前面的加号,你就会看见“IDD_commwizard_dialog”,然后双击,就可以打开这个资源文件,也就是对话框 ...

MFC里创建对话框create函数里的一个参数lpszTemplateName是什么意思...
lpszTemplateName Contains a null-terminated string that is the name of a dialog-box template resource.你可以理解为就是个ID号,比如IDD_DIALOG1。你可能需要在resouse.h中定义IDD_DIALOG1 比如#defile IDD_DIALOG1 111111111

MFC对话框编程问题
1.根据逗创建对话框模板和修改对话框属性地中所讲的方法,在Resource View中的逗Dialog地上点右键选择逗Insert Dialog地,创建一个新的对话框模板,修改其ID为IDD_TIP_DIALOG,Caption改为逗提示地,然后参考逗为对话框添加控件地中所讲,在对话框模板上添加一个静态文本框(static text),Caption改为...

VC弹出对话框内容显示的问题(MFC)
test2");m_combobox.SetCurSel(0);} 也就是说,你要是用CDialog start(IDD_START_CHOOSE);这句,你的下拉例表控件跟本就没有初始化。明白?要用楼上几位说的方法才能显示出来控件。希望你明白我说的话了。例如一楼说的:CBDlg dlg;if(dlg.DoModal()==IDOK){ \/\/do what you want } ...

mfc 窗体间的跳转! 急………
方法:新建一个对话框 程序 A 类就是 CADlg 添加一个 对话框资源B ,ID为 IDD_DIALOGB ,类为CBDlg 把 CBDlg 的头文件 bdlg.h 包含到 CADlg 的头文件,并在CADlg类中定义一个 CBDlg对象.include "bdlg.h" \/\/这是新加代码。\/\/\/ \/\/ CADlg dialog class CADlg : public CDialog { \/...

Visual C++MFC
GetDlgItem(IDC_EDIT1)->SetFocus();\/\/设置光标焦点,放到ID为IDC_EDIT1的控件上CDialog::OnOK(); \/\/响应“确认”按钮命令,关闭对话框 ID的类型参照二楼的回答!

相似回答