会触发WM_CREATE对话框也属于窗口。

解决方案 »

  1.   

    在用CreateDialog创建对话框时会触发WM_CREATE消息
    其他东东 mfc深入浅出前几章上面写了,Createdialog主要通过调用windows的内建函数创建对话框,(具体哪个记不清了:))
      

  2.   

    如果CreateDialog调用CreateWindow(Ex)来创建对话框,那么必然产生WM_CREATE,除非CreateWindow(Ex)对这个Dialog窗口类有特殊的处理。
    CreateDialog使用CreateWindowEx来创建对话框的,msdn这么说。
    DialogBox也使用CreateWindowEx来创建对话框,msdn这么说。
    还有一个,CreateDialog和DialogBox都是macro,不是function。
      

  3.   

    to SDK:
        如果DialogBox也通过CreateWindowEx来创建对话框那为什么不产生WM_Create呢?我试着捕捉这消息,但不能捕捉到啊
      

  4.   

    CreateDialog是CreateDialogParam 的宏定义,通过调用CreateWindowEx来创建对话框,所以应该会触发WM_CREATE消息的,然后发送WM_INITDIALOG给对话框。
    DialogBox是DialogBoxParam的宏定义,同样是调用CreateWindowEx。只不过它创建完了以后就屏蔽了它的拥有者窗口,进入自己的消息循环,所以它创建的对话框是模式对话框。