c**view::oninitialupdate()
{
cformview::oninitialupdate()
/*
加入你要的初始化代码*/
getparentframe()->recalclayout()
resizeparenttofit()
}
在cformview中,通过跟踪可发现程序不会去调用cdialog::oninitdialog(),在cformview::create(**)中有如下语句createdlg(m_lpsztemplatename,
pparentwnd),既对话框通过非模态创建,创建期间会发送wm_create消息,但初始化代码不能写在oncreate函数里面,因为此时对话框还没创建完毕,在所有的创建工作结束后,既cformview::create(**)执行完毕后系统会调用oninitialupdate(),这时候就可以加入你的初始化代码了
打开对话框编辑器(双击资源中需要编辑的对话框资源即可,例如IDD_DIALOG1)
工具栏上点击右键,选择“控件",英文版的话是"Control"
将控件工具栏上的”静态文本“控件拉到对话框上即可。
自己新建一个对话框,然后在上面放一下static控件,把对话框标题清空,如图:
给对话框新建一个类,比如叫CMsgDlg,然后给static控件关联一个控件变量,比如叫m_lbMsg,
然后添加两个成员变量:
CString m_strCaption//保存标题信息CString m_strMsg//保存提示信息
然后,添加一个构造函数,如:
CMsgDlg(CString strCaption, CString strMsg, CWnd* pParent = NULL)//构造函数实现:
CMsgDlg::CMsgDlg( CString strCaption, CString strMsg, CWnd* pParent /*= NULL*/ )
: CDialog(CMsgDlg::IDD, pParent)
{
m_strCaption = strCaption
m_strMsg = strMsg
}
最后,添加对话框类WM_INITDIALOG事件处理函数,编写如下代码:
BOOL CMsgDlg::OnInitDialog(){
CDialog::OnInitDialog()
// TODO: Add extra initialization here
this->SetWindowText(m_strCaption)
m_lbMsg.SetWindowText(m_strMsg)
return TRUE // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
自定义的对话框编写完成,然后,再你要使用的地方include相关头文件,之后添加如下代码:
CMsgDlg dlg("这是标题", "这是自定义提示信息")dlg.DoModal()
下面是运行效果:
这对话框的样子你可以再自己进行调整。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)