MFC怎么获取窗口在屏幕中的位置

MFC如何获取窗口在屏幕中的位置
我做了一个mfc程序,其中在一个线程的类里想要知道主窗体在屏幕中的位置(左上角算起) 的X和Y,怎么获取呢?
另外还要获得窗体宽和长


(因为想要控制鼠标的活动范围只是在程序内部)
------解决思路----------------------
主窗体能不能移动?能不能放大缩小?如果不动的话,初始化的时候xy长宽就定下来了。

------解决思路----------------------
线程中传入主窗口的窗口句柄 h_MainWnd;

RECT rt = {0};
::GetWindowRect(h_MainWnd,&rt);  //得到的既是相对于屏幕左上角的窗口矩形区域

POINT pt = {rt.left,rt.top};
long lWidth = rt.right - rt.left;
long lHeight = rt.bottom - rt.top;

------解决思路----------------------
你创建线程的时候将主窗口的HWND窗口句柄作为线程函数的参数传递给线程即可。
------解决思路----------------------
哎哟,你这是夸进程了呀!

首先关于数据显示的问题,你是必须要搞个控制台显示,还是只是想看看运行的数据?如果是必须要弄控制台,这对于你来说估计有些困难,因为牵扯到进程间通信,当然,你也可以可以使用Win32控制台应用程序,在这里面通过FindWindow/FindWindowEx来获取你主程序窗口句柄,再GetWindowRect都是可以的;如果你只是想看看运行数据,直接打log或者TRACE,甚至是单步调试都可以啊,还搞那么麻烦干嘛??!!

其次,关于获取主窗口句柄的问题,最简单的办法就是在应用程序初始化函数::InitInstance()中保存全局变量(如果你是基于对话框的,那就在OnInitDialog中保存即可),
另外,你上面提到的第一种方法肯定是不对的,第二种方法就是对的啊,问题应该出现在你那个控制台显示上
------解决思路----------------------
主窗体通过this->getScreenRect(rect) 获取自己的x,y,w,h
然后直接调用全局线程类对象,把这些值赋进去