获得对话框某控件所在位置带来的奇怪问题
背景:基于对话框的项目,目标是获得某一控件在对话框的相对坐标,坐标原点是对话框左上角。
我的尝试:
在对话框初始化中,ShowWindow(SW_MINIMIZE);//这个是项目新建向导中不小心选择的,影响到了获得的坐标
CStatic* placeMark = (CStatic*)GetDlgItem(IDC_PLACEMARK);//IDC_PLACEMARK为目标控件ID
CRect position;
placeMark->GetClientRect(position);//position = {top=0 bottom=282 left=0 right=354},控件ID左上角坐标为(0,0)
ScreenToClient(&position);//position = {top=32000 bottom=32282 left=32000 right=32354},怎么可能,貌似获得了上限值
如果注释掉这句ShowWindow(SW_MINIMIZE);
GetClientRect获得的position同上,而ScreenToClient获得的position = {top=-23 bottom=259 left=-3 right=351},看左上角坐标为(-3,-23),我把控件挪了下位置,结果不变(我选的group box控件,我的看法是以控件左上角+border为原点,左上角的坐标)
我的问题是:如何获得某一控件在对话框的相对坐标,以对话框的左上角为原点
谢谢了~