VC++关于ClientToScreen

------------------------------------------------------------BOOLCOurAim::OnInitDialog... ------------------------------------------------------------BOOL COurAim::OnInitDialog(){ CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 m_list.SetExtendedStyle(LVS_EX_SUBITEMIMAGES ); //一定要设置LVS_EX_SUBITEMIMAGES m_list.InsertColumn(0,_T("")); m_list.SetColumnWidth(0,72); friendbutton.GetClientRect(&rectbutton1); //这里得到button以(0,0)为起点的rect friendbutton.ClientToScreen(&rectbutton1); //此时rc变成以屏幕左上角为原点的相对rect ScreenToClient(&rectbutton1); m_list.GetClientRect(&rectlist); //这里得到button以(0,0)为起点的rect m_list.ClientToScreen(&rectlist); //此时rc变成以屏幕左上角为原点的相对rect ScreenToClient(&rectlist); colleaguesbutton.GetClientRect(&rectbutton2); //这里得到button以(0,0)为起点的rect colleaguesbutton.ClientToScreen(&rectbutton2); //此时rc变成以屏幕左上角为原点的相对rect ScreenToClient(&rectbutton2); strangerbutton.GetClientRect(&rectbutton3); //这里得到button以(0,0)为起点的rect strangerbutton.ClientToScreen(&rectbutton3); //此时rc变成以屏幕左上角为原点的相对rect ScreenToClient(&rectbutton3); ifriend = 1; ShowIconItem(); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE}-------------------------------------------以上,代码中friendbutton.GetClientRect(&rectbutton1); friendbutton.ClientToScreen(&rectbutton1); //转换 ScreenToClient(&rectbutton1); //又转换回来?为什么转换回来的目的是什么,怎么理解这句? 程序实现的是qq风格窗体 展开
 我来答
superzmy
2011-10-18
知道答主
回答量:28
采纳率:0%
帮助的人:21.1万
展开全部
我认真看了一下
friendbutton.GetClientRect(&rectbutton1); 现在rect坐标系是friendbutton本身(left=0,top=0)
friendbutton.ClientToScreen(&rectbutton1); 现在坐标系是屏幕
ScreenToClient(&rectbutton1); 现在坐标系是窗口(隐藏一个this)
也就是最终目的是取得this窗口坐标系的坐标
买启Hu
2011-10-19
知道答主
回答量:14
采纳率:0%
帮助的人:10.4万
展开全部
下次,建议你不要把无关的代码一起贴上来,看的眼花缭乱的。

superzmy 正解。

ScreenToClient 转换的时当前的用户窗口,实际上就是THIS 。已经不再是最开始的friendbutton。
这个方法不错,学习了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式