#define IDC_BUTTON1 1001
CButton m_MyButton1;使用两种方式获取的CRect好象不同
方式一:
CRect rect;
GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect); //要获取位置的控件ID
ScreenToClient(rect); //rect.left 就是X坐标,rect.top 就是Y坐标
方式二:
CRect rc;
m_MyButton1.GetClientRect(&rc); //取得按钮的矩形位置
两者得到的CRect不同 记得前两天调试的时候好象是一样的 这两天就怎么也不能调试出来了利用m_MyButton1.GetDlgCtrlID()获得的ID是1001确认是同一控件
另外想问下 在Watch窗口想查看m_MyButton1.GetDlgCtrlID()的值 居然无法返回 提示: m_MyButton1.GetDlgCtrlID() CXX0052: Error: member function not present
但是在程序正常运行中却能返回正常结果 这是为什么
CButton m_MyButton1;使用两种方式获取的CRect好象不同
方式一:
CRect rect;
GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect); //要获取位置的控件ID
ScreenToClient(rect); //rect.left 就是X坐标,rect.top 就是Y坐标
方式二:
CRect rc;
m_MyButton1.GetClientRect(&rc); //取得按钮的矩形位置
两者得到的CRect不同 记得前两天调试的时候好象是一样的 这两天就怎么也不能调试出来了利用m_MyButton1.GetDlgCtrlID()获得的ID是1001确认是同一控件
另外想问下 在Watch窗口想查看m_MyButton1.GetDlgCtrlID()的值 居然无法返回 提示: m_MyButton1.GetDlgCtrlID() CXX0052: Error: member function not present
但是在程序正常运行中却能返回正常结果 这是为什么
CRect rect;
GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect); //要获取位置的控件ID
ScreenToClient(rect); //rect.left 就是X坐标,rect.top 就是Y坐标
-----------------------------------------------------------------
这个时候的rect是相对于你的对话框来说的位置方式二:
CRect rc;
m_MyButton1.GetClientRect(&rc); //取得按钮的矩形位置
-------------------------------------------------------
而这个,很显然是:(0,0,*,*)
建议看看MSDN里 GetWindowRect(CRect *rect)和
GetClientRect(CRect *rect)2个函数的说明