注意mfc下oninitdialog()和onsize()的调用顺序

BOOL dddd::OnInitDialog()

{

       // 代码区1
      CDialog::OnInitDialog();     // 注:句1

       // 代码区2
}

 

void dddd::OnSize(UINT nType, int cx, int cy)

{

}

 

猜测:在程序调用的时候,OnInitDialog函数与OnSize()应该相当于两个线程如:

{

     Beginthread( OnInitDialog );

     Beginthread( OnSize );

}

 

所以:程序运行时如果一个实体(比如说控件)在OnInitDialog 中还没有创建,但是在OnSize 中已经设置位置了,那么就会出现错误---gwse.exe。

 

注:

1.在句1执行之前是运行1次OnSize(),在句子运行之后是还要运行OnSize()的。

2.注意代码区1和代码区2。有些代码应该写在代码区域2中:

比如说:

2.1m_wndCommandBar

2.2// 右上角按钮变成叉  ::SHDoneButton(m_hWnd,SHDB_HIDE)

等。

你可能感兴趣的:(mfc)