各位大侠,
    请问如何在一个CDialog.DoModel()调用之前先设置好它的位置?或者说我想调用DoMoal在我制定的位置显示对话框?

解决方案 »

  1.   

    在OnInitDialog用
    SetWndowPos(NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
      

  2.   

    在DoModal()之前调用如下函数:
    CDialog::InitModalIndirect 
    BOOL InitModalIndirect( LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL );BOOL InitModalIndirect( HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL );设置DLGTEMPLATE结构
      

  3.   

    多谢 goodboyws(深夜不眠者) 和 syy64(太平洋)     已经搞定了,我是在OnInitialDialog中MoveWindow的。
        呵呵    不过有点奇怪的是,在此之前,尝试在PreCreateWindow中设置cs.x和cs.y,发现PreCreateWindow根本就不会被调用到。这个让我觉得奇怪。。难道是因为CDialog不是继承自CWnd的缘故,所以才不会被调用吗?
      
        哪位高手来指点指点牙~~~
        ^_^
      

  4.   


    晕了,上面说错了,CDialog是继承自CWnd的,这个就更加让我困惑了~~~~