如果你想在窗口创建的时候,指定哪些控件显示,哪些控件不显示,那么选择重写OninitDialog,它是CDialog的成员函数 CDialog::OnInitDialog
MSDN示例代码:
BOOL CSimpleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_cMyEdit.SetWindowText(_T("My Name")); // Initialize control values
m_cMyList.ShowWindow(SW_HIDE); // Show or hide a control, etc.
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
VS2017 通过类向导中的虚函数重写来添加此函数:

OnCreate
它是 CWnd的消息响应函数
CWnd::OnCreate
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
我们指定CDialog是CWnd的子类,那么我们可想象是哪个先调用的呢?这里理解当然父类先调用它的OnCreate来创建一个基础的窗口,在此基础窗口上,这个窗口是个文本框还是个对话框或者是个其他窗口,是由对应类的初始化函数来决

博客主要介绍了窗口创建和初始化相关函数。重写OninitDialog可指定窗口创建时控件的显示情况,它是CDialog成员函数。OnCreate是CWnd消息响应函数,响应WM_CREATE消息时窗口未建立,不能操作控件;响应WM_INITDIALOG消息时窗口已建立,可对控件初始化和修改。
1776

被折叠的 条评论
为什么被折叠?



