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

已有代码//button1.cpp#include<afxwin.h>#defineIDB_BUTTON100//说明应用程序类classCButtonApp:publi... 已有代码
//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);
}
展开
 我来答
百度网友b0db494
推荐于2017-11-24 · TA获得超过257个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:161万
展开全部
你先为对话框资源创建一个类,CTestDlg类,在要创建对话框的地方包含这个类的头文件,然后创建一个对象:CTestDlg testdlg;
testdlg.DoModal();就行了
tattackor
推荐于2016-02-18 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:857万
展开全部
1、资源视图-->Dialog-->右键-->添加资源-->新建-->对话框-->对话框按右键--添加类。
2、例如:
添加CMyNewDlg类,在所要调的代码中(按钮点击方法中),先加头文件#include "CMyNewDlg.h
",之后在按钮点击方法中:
void COnclickDlg::OnBnClickedOk()
{
CMyNewDlg Dlg;
Dlg.DoModal();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9c1bf95
2011-08-08 · TA获得超过495个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:305万
展开全部
动态创建一个
dlg = new CDialog();
然后用函数DoModal,调用。要注意传参,这属于非模态对话框
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jht_1111111
2011-08-08 · TA获得超过156个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:189万
展开全部
找个InitInstance之后的一个地方
或者你自己试着看吧
CDialog dlg(IDD_DIALOG1,NULL);

dlg.DoModal();
追问
为什么我插入后还不行?
错误信息:
error C2065: 'IDD_DIALOG1' : undeclared identifier
但我已加入了对话框
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式