如何知道一个控件的位置?

ergou22222 2003-01-16 09:25:25
我做的是flashplayer。我在窗口中插入Shockwave Flash Object控件
想知道如何得到它的位置。以实现全屏功能。或者有别的更好的方法来实现全屏功能请告诉我。
...全文
68 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lionpb 2003-01-17
  • 打赏
  • 举报
回复
RECT rect;
CWnd::GetWindowRect( &rect );
CWnd::ScreenToClient( &rect );
或者
RECT rect;
point begin, end;
GetWindowRect( hWnd, &rect );
begin.x = rect.left; begin.y = rect.top;
end.x = rect.right; end.y = rect.bottom;
ScreenToClient( hWnd, &begin );
ScreenToClient( hWnd, &end );

rect.left = begin.x; rect.top = begin.y;
rect.right = end.x; rect.bottom = end.y;

主要是看你是有该控件的指针还是句柄,如果有指针,用上面那种方便,有句柄,用下面这种了。
sinhighly 2003-01-17
  • 打赏
  • 举报
回复
GetWindowRect和GetClientRect
lionpb 2003-01-17
  • 打赏
  • 举报
回复
要实现全屏功能,就不需要调用ScreenToClient了,因为GetWindowRect获得的就是屏幕座标,一旦你的窗口全屏之后,这个坐标也就是你在窗口里的座标了。当然如果你的控件是在全屏窗口的一个子窗口上的,就只能计算一下了。
hfqian 2003-01-16
  • 打赏
  • 举报
回复
GetWindowRect和GetClientRect都能取得控件或者窗口的区域坐标值,其差别在于前者获得是屏幕坐标,绝对坐标,后者是相对坐标,可通过ScreenToClient进行转换,查看MSDN
kulaza 2003-01-16
  • 打赏
  • 举报
回复
使用GetWindowRect()取得屏幕坐标
然后ScreenToClient()转换为客户区坐标
这两个函数的具体使用方法查一查Msdn吧,记不太清了:(
differ1 2003-01-16
  • 打赏
  • 举报
回复
CRect rect;
myButton.GetClientRect(&rect);
rect.ScreenToClient();
fengge008 2003-01-16
  • 打赏
  • 举报
回复
GetClientRect()
可能需要屏幕与客户区的转换
fengge008 2003-01-16
  • 打赏
  • 举报
回复
GetClientRect()
zqrjx 2003-01-16
  • 打赏
  • 举报
回复
GetWindowPos 才对
papaya_stone 2003-01-16
  • 打赏
  • 举报
回复
GetWindowRect()

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧