构造函数与初始化函数

构造函数不会自动调用初始化函数。  
   
  一般构造函数做一些基本的变量初始化的 工作 。模式对话框用DoModal函数加载对话框模板,创建对话框,在创建对话框的时候由CBT钩子处理函数将一个对话框对象和创建的对话框窗口句柄绑定,并且在创建的内部发送WM_INITDIALOG消息。  
   
  非模式对话框在mfc中没有模式循环,用Create函数就直接返回了,和主 程序 公用一个消息循环,在调用Create函数内部发送WM_INITDIALOG消息。Create之后,要用ShowWindow函数对话框才会显示。  
   
  mfc中,WM_INITDIALOG是第二个发送到对话框的消息,第一个是WM_CREATE,一般都没有用到他,CDialog::OnCreate也只是调用一个默认的Default过程。  
   
  在对话框的OnInitDialog处理函数中可以做很多事情,因为窗口和模板上的控件已经创建好了,所以他们的窗口句柄,ddx 数据 交换过程,显示设备dc都进入工作,所以,设置对话框的位置,控件的位置,画图,焦点的设置等等都可以做。  
   
  OnInitDialog是响应WM_INITDIALOG消息的,是系统内部调用的处理过程,他不需要你的参与就能自动调用,只要你实现他的 代码 就行。   
    上述内容为引用论坛里面的一位前辈的论述,放在这里是为了以后查阅方便.
 

你可能感兴趣的:(工作,mfc)