对话框的程序,应该是在oninitdialog
文档类的程序,应该在oninitupdate
但是,我现在要子类化一个子对话框中的edit控件
子对话框好像没有oninitdialog,那么,应该放在哪里呢?
当然,我可以放在父类的oninitdialog中
但是,我想搞清楚,到底应该在哪个函数中调用subclasswindow最合适

解决方案 »

  1.   

    我觉得在父类的oninitdialog中合适
      

  2.   

    但是在父类的oninitdialog中调用的话,
    我好像遇到一个问题,就是在父dialog中用GetDlgItem好像得不到子dialog中的edit控件
    是不是我什么地方搞错了?
      

  3.   

    subclasswindow的作用是让Windows优先用自己定义的消息处理函数,所以我决得在哪里是无所谓得。
      

  4.   

    但是它的参数是(HWND)
    至少要保证(cv1_dlg.GetDlgItem(IDC_EDITEUR1005))得到的不是null吧?
    我的语句这样写的:
    m_eur1005.SubclassWindow( (HWND)(GetDlgItem(IDC_EDITEUR1005)) );
    //CMyEdit m_eur1005
      

  5.   

    m_eur1005.SubclassWindow( GetDlgItem(IDC_EDITEUR1005).GetSafeHwnd() );