C++ 如何通过句柄获取控制窗口的位置坐标,或者说如何初始化控制窗口的坐标

void shake()
{
int i,x,y,j,k;
x=400;
y=200;
j=25;
k=5;
HWND hwnd;//handle
hwnd = GetForegroundWindow();
for(i=0;i<=5;i++)
{
MoveWindow(hwnd,x+k,y-k,1000,400,true);
Sleep(j);
MoveWindow(hwnd,x-k,y-k,1000,400,true);
Sleep(j);
MoveWindow(hwnd,x-k,y+k,1000,400,true);
Sleep(j);
MoveWindow(hwnd,x+k,y+k,1000,400,true);
Sleep(j);
MoveWindow(hwnd,x,y,1000,400,true);
Sleep(j);
}
}

我弄了一个窗口震动的函数,但是不知道一开始窗口的位置,第一次震动的时候窗口会移动很长的距离,这样不是很好看,请问如何获取窗口的初始位置或者设定窗口的初始位置。
还有就是,设置输出的文字颜色是怎么弄的?

GetWindowRect函数,问题解决记得选为正确答案哟!

输出字的颜色的话,可以用系统函数。先用win+r键打开运行,输入“cmd”,就可以打开控制窗口,输入 color 999 ,就会弹出一个提示,仔细读读,就知道如何搭配了。
比如说黑底绿字是 color 02,红底黑字是 color 04。要写在程序里的话,加个system("")就可以了。总体来说,改变输出字的颜色函数为:
system("color 搭配的颜色");