如何获取窗口的坐标?

angelcool 2004-04-03 06:35:13
在获取窗口的句柄时需要同时获取它的坐标(left,right)(top,bottom)?
...全文
1919 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liushuaiboy 2004-04-04
  • 打赏
  • 举报
回复
mark
angelcool 2004-04-03
  • 打赏
  • 举报
回复
谢谢!
能去关注以下我的另一个问题吗?你其实也发帖了,只是我没把问题说清楚。
“如何将该某指定的窗体拷贝并显示?”
_foo 2004-04-03
  • 打赏
  • 举报
回复
多学点c++知识.
_foo 2004-04-03
  • 打赏
  • 举报
回复
那就对啦.
CDialog是CWnd的派生类,理所当然的继承了CWnd的成员函数GetWindowRect,而你要调用的是API中同名函数,但由于你没指定作用域,编译器认为你要调用的就是CWnd的GetWindowRect了,所以要让你上面的代码编译通过,必须这样.

LPCTSTR lpWindowName="D:\\wanf";
HWND hwTest;
hwTest = (HWND)FindWindow(NULL, lpWindowName);
if (::GetWindowRect(hwTest, temprect))//在函数前面加上::表示调用的是全局函数
{
...
}
angelcool 2004-04-03
  • 打赏
  • 举报
回复
我初学VC,被你问晕了。
我从头说吧,希望能找到答案。
我是用向导常见了一个MFC APPWIZARD(EXE)工程,名为‘getimage’。
添加了一个Dialog,两个按钮,一个图形控件。
再getimageDlg.cpp中添加了OnGet()--获取窗口句柄并在至Dialog中显示。
基本上是这样,我回答了吗?
请原谅我的无知,但我是获取知识!
谢谢
_foo 2004-04-03
  • 打赏
  • 举报
回复
不是的,你先说你上面这段代码是在哪个类哪个函数体里的.

我觉得只有在CWnd相关类的成员函数体里才可能出现那个编译错误.
angelcool 2004-04-03
  • 打赏
  • 举报
回复
LPCTSTR lpWindowName="D:\\wanf";
HWND hwTest;
hwTest = (HWND)FindWindow(NULL, lpWindowName);
这样获取窗口句柄对吗?
然后再
hwTest.GetWindowRect(temprect);
是这个意思吗?
_foo 2004-04-03
  • 打赏
  • 举报
回复
这就是C++的特点了
成员函数的使用是这样的
object.GetWindowRect()
这时的窗口句柄当然是object的了,所以就不用再指定了.
angelcool 2004-04-03
  • 打赏
  • 举报
回复
void GetWindowRect( LPRECT lpRect ) const;

没有指定窗口句柄它怎么能获取响应的Rect呢?
学习
_foo 2004-04-03
  • 打赏
  • 举报
回复
如果你是在一个MFC窗口类里加的这些代码的话.
GetWindowRect是CWnd的成员函数.他只有一个参数.
如果你非要用那个两个参数的API,得在前面加::
_foo 2004-04-03
  • 打赏
  • 举报
回复
GetWindowRect就OK了
返回的rect里包函了你所要的.
angelcool 2004-04-03
  • 打赏
  • 举报
回复
LPCTSTR lpWindowName="D:\\wanf";
HWND hwTest;
hwTest = (HWND)FindWindow(NULL, lpWindowName);
if ((BOOL)GetWindowRect(hwTest, temprect))
{
...
}
error C2660: 'GetWindowRect' : function does not take 2 parameters
但是我查msdn有两个参数的,为什么会出错?
bhut 2004-04-03
  • 打赏
  • 举报
回复
getwindowrect
getwindowpos

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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