MFC如何在对话框中输入文字

MFC如何在对话框中输入文字,第1张

void

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()

下面是运行效果:

这对话框的样子你可以再自己进行调整。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11953238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存