我做了个CEdit的子类CMyEditCtrl,并重载了WM_CREATE消息OnCreate.在对话框资源上,加了个EDIT控件,并且添加了个成员变量m_edit,手工改它成CMyEditCtrl m_edit;m_edit运行正常,但就是不执行OnCreate如果我不在对话框上加EDIT,而是用编码的方法来创建EDIT,CMyEditCtrl m_edit; m_edit.Create(...); 那OnCreate就会得到执行。那么对话框上的EDIT控件,是通过什么方式来Create的呢?

解决方案 »

  1.   

    帮你顶一下, 好像模态对话框都不会触发OnCreate消息
      

  2.   

    你把你需要的初始化放到PreSubcalssWindow()里面。
      

  3.   

    不对吧,模态对话框也会调用OnCreate()的,你可以加断点试试。
      

  4.   

    可以在PreSubClassWindow里面处理OnCreate的操作
      

  5.   

    control on Dialogs are created by CreateDialogIndirect, then m_edit attatch to the control created in the first DoDataExchange call.