2010.8.8 关于对话框

一、关于对话框的OnInitDialog函数

作用:

OnInitDialog :
初始化对话框。
是程序运行时的开始状态的设定。

DoDataExchange:
注册数据监听数据改变。

OnPaint:
设定窗口大小等的默认状态

 

分析:

OnInitDialog什么时候产生呢?

DoModel之后,随之产生。

 1、

CDialog1 dlg;
 dlg.DoModal();

然后调用

2、

INT_PTR CALLBACK AfxDlgProc(HWND hWnd, UINT message, WPARAM, LPARAM)
{
 if (message == WM_INITDIALOG)
 {
  // special case for WM_INITDIALOG
  CDialog* pDlg = DYNAMIC_DOWNCAST(CDialog, CWnd::FromHandlePermanent(hWnd));
  if (pDlg != NULL)
   return pDlg->OnInitDialog();
  else
   return 1;
 }
 return 0;
}

 

3、调用OnInitDialog

BOOL CDialog::OnInitDialog()

CDialog已经写了,自己可以继承,不过必须先调用CDialog的函数

BOOL CDialog1::OnInitDialog()
{
 CDialog::OnInitDialog();
 return true;
}

 

关于CDialog的实现,参考文件Dlgcore.cpp


 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(10.8)