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(),这时候就可以加入你的初始化代码了

自己新建一个对话框,然后在上面放一下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()下面是运行效果:

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


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

原文地址: https://outofmemory.cn/bake/11791303.html

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

发表评论

登录后才能评论

评论列表(0条)

保存