新建一个Dialog,默认显示是在屏幕中间。但是初始化的时候GetWindowRect,显示的坐标left和top都为0,我也用了ClientToScreen,left和top还是正确!怎么获得正确的位置信息呢?如果我要自己设置它的大小,要在哪里呢?Init,onPaint 还是哪里?但是主窗口 不应该设置啊,都已经事先放好控件了!给点见解吧!

解决方案 »

  1.   

    初始化结束返回之前,PostMessage发送一个消息,在消息处理函数之中GetWindowRect
      

  2.   

    我试了一下,得到的是对的,但是我想在主窗口中设置子窗口的显示位置,所有要在InitDialog中得到窗口的位置信息,那怎么办呢?
      

  3.   

    CenterWindow 就是居中显示。要设置窗口大小,可以在oninitdialog中就可以了啊。如果想要获取正确的位置,如楼上,postmessage,然后windowproc函数中处理。
      

  4.   

    无非就是想要设置子窗口位置,是不是啊,你去找个easysize东东,解决子窗口排布问题
      

  5.   

    父窗口WM_SIZE消息响应函数中先判断子窗口句柄是否有效,再MoveWindow/SetWindowPos()修改子窗口的显示区域~
      

  6.   

    http://www.codeproject.com/Articles/1657/EasySize-Dialog-resizing-in-no-time