单文件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);
} 展开
//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);
} 展开
4个回答
展开全部
1、资源视图-->Dialog-->右键-->添加资源-->新建-->对话框-->对话框按右键--添加类。
2、例如:
添加CMyNewDlg类,在所要调的代码中(按钮点击方法中),先加头文件#include "CMyNewDlg.h
",之后在按钮点击方法中:
void COnclickDlg::OnBnClickedOk()
{
CMyNewDlg Dlg;
Dlg.DoModal();
}
2、例如:
添加CMyNewDlg类,在所要调的代码中(按钮点击方法中),先加头文件#include "CMyNewDlg.h
",之后在按钮点击方法中:
void COnclickDlg::OnBnClickedOk()
{
CMyNewDlg Dlg;
Dlg.DoModal();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
动态创建一个
dlg = new CDialog();
然后用函数DoModal,调用。要注意传参,这属于非模态对话框
dlg = new CDialog();
然后用函数DoModal,调用。要注意传参,这属于非模态对话框
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找个InitInstance之后的一个地方
或者你自己试着看吧
CDialog dlg(IDD_DIALOG1,NULL);
dlg.DoModal();
或者你自己试着看吧
CDialog dlg(IDD_DIALOG1,NULL);
dlg.DoModal();
追问
为什么我插入后还不行?
错误信息:
error C2065: 'IDD_DIALOG1' : undeclared identifier
但我已加入了对话框
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询