小弟我晕了。子窗口居中于主窗口如何计算的
我晕了。子窗口居中于主窗口怎么计算的?
我计算了半天坐标不对- -脑子已经晕了。
RECT rc = {0};
RECT mainRect = {0};
GetWindowRect(&mainRect);
int top,left;
::GetClientRect(newForm,&rc);
left = mainRect.right - (mainRect.right-mainRect.left)/2 + (rc.right-rc.left)/2;
top = mainRect.top - (mainRect.bottom-mainRect.top)/2 + (rc.bottom-rc.top)/2;
::SetWindowPos(newForm,NULL, left, top,0,0,SWP_NOSIZE|SWP_HIDEWINDOW);
------解决方案--------------------
GetWindowRect();
ScreenToClient();
------解决方案--------------------
CenterWindow函数
------解决方案--------------------
GetWindowRect(newForm, &rc);
left = (mainRect.left+mainRect.right - (rc.right - rc.left)) / 2;
top = (mainRect.top+mainRect.bottom - (rc.bottom - rc.top)) / 2;
如果是用GetClientRect就没算标题栏等非客户区
GetClientRect(newForm, &rc);
left = (mainRect.left+mainRect.right - rc.right) / 2;
top = (mainRect.top+mainRect.bottom - rc.bottom) / 2;
------解决方案--------------------
mainRect确保是你的福窗口
left = mainRect.left+(mainRect.width()-rc.width)/2;
我计算了半天坐标不对- -脑子已经晕了。
RECT rc = {0};
RECT mainRect = {0};
GetWindowRect(&mainRect);
int top,left;
::GetClientRect(newForm,&rc);
left = mainRect.right - (mainRect.right-mainRect.left)/2 + (rc.right-rc.left)/2;
top = mainRect.top - (mainRect.bottom-mainRect.top)/2 + (rc.bottom-rc.top)/2;
::SetWindowPos(newForm,NULL, left, top,0,0,SWP_NOSIZE|SWP_HIDEWINDOW);
------解决方案--------------------
GetWindowRect();
ScreenToClient();
------解决方案--------------------
CenterWindow函数
------解决方案--------------------
GetWindowRect(newForm, &rc);
left = (mainRect.left+mainRect.right - (rc.right - rc.left)) / 2;
top = (mainRect.top+mainRect.bottom - (rc.bottom - rc.top)) / 2;
如果是用GetClientRect就没算标题栏等非客户区
GetClientRect(newForm, &rc);
left = (mainRect.left+mainRect.right - rc.right) / 2;
top = (mainRect.top+mainRect.bottom - rc.bottom) / 2;
------解决方案--------------------
mainRect确保是你的福窗口
left = mainRect.left+(mainRect.width()-rc.width)/2;