创建一个基于对话框的程序,对话框的显示是通过DoModal()函数实现的。这个对话框在创建并显示初期,是位于整个屏幕的某一位置,如何得到它初始的位置及大小?也就是说,如何得到左上边的坐标和长宽呢?'谢谢:)

解决方案 »

  1.   

    CRect rc;
    GetWindowRect(&rc);
    ClientToScreen(&rc);
    int nHeight = rc.Height();
    int nWidth = rc.Width();
      

  2.   

    我感觉好像不行,在DoModal()之前窗口还未创建,又从何谈起得到窗口的尺寸呢
      

  3.   

    要调整对话框位置、大小,去查询WINDOWPLACEMENT
      

  4.   

    在对话框OnInitDialog中调整。
    非常同意
      

  5.   

    调用DoModal的时候,大小是固定了的,就是资源里头的对话框大小。
    其实DoModal的时候,MFC会计算屏幕大小,再根据对话框大小计算出合适的位置,以把对话框放在屏幕中央。这个算法也很好算:
    左上角x坐标:(屏幕宽度-对话框宽度)/2
    左上角y坐标:(屏幕高度-对话框高度)/2