求助啊GetWindowRect的问题我是菜鸟

a307939647 2012-08-19 07:37:20
代码:
HWND gameh=::FindWindow(NULL,"水果连连看2012");
LPRECT r1=0;
::GetWindowRect(gameh,r1);
m_x=r1->left;m_y=r1->top;
UpdateData(0);
运行后不显示坐标,如果改成
HWND gameh=::FindWindow(NULL,"水果连连看2012");
RECT r1;
::GetWindowRect(gameh,&r1);
m_x=r1.left;m_y=r1.top;
UpdateData(0);
就可以,为什么??
我用的是visual studio 2012
...全文
190 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿兰杨 2012-11-01
  • 打赏
  • 举报
回复
有沒有在win8環境下試過GetWindowRect ?獲取到的height比在win7下的值要大,是什麽原因?
whucv 2012-08-19
  • 打赏
  • 举报
回复
学习了
[Quote=引用 8 楼 的回复:]
我已经测试过了,问题出在指针初始化“LPRECT r1 = 0”上面。
解决方法:“LPRECT r1 = 0”改为“LPRECT r1=new CRect”
解释:你自己心里知道r1是指向RECT的指针,但是你没告诉编译器呀,如何为你存储后续RECT对象参数?故用“LPRECT r1=new CRect”即可解决问题。C++里面指针初始化是要new滴!
给分吧。
[/Quote]
rxguoblp 2012-08-19
  • 打赏
  • 举报
回复
我已经测试过了,问题出在指针初始化“LPRECT r1 = 0”上面。
解决方法:“LPRECT r1 = 0”改为“LPRECT r1=new CRect”
解释:你自己心里知道r1是指向RECT的指针,但是你没告诉编译器呀,如何为你存储后续RECT对象参数?故用“LPRECT r1=new CRect”即可解决问题。C++里面指针初始化是要new滴!
给分吧。
Gloveing 2012-08-19
  • 打赏
  • 举报
回复
LPRECT r1 = new Rect();//试试?
a307939647 2012-08-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

LP代表long point指针
[/Quote]
这个我知道,我就想知道是哪里的问题??
a307939647 2012-08-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

::GetWindowRect(gameh,&r1);
第二个参数是LRECT,也就是一个指向矩形结构对象的指针
之前那个传递的是矩形对象的变量值
[/Quote]
LPRECT不就是指向RECT的指针吗??
我定义一个指针LPRECT r1传递进去的不是指针吗??
a307939647 2012-08-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

LPRECT r1=NULL;初始化试一试
指针变量初始化为NULL是个好习惯。
全局变量通常会被初始化为0,对于指针就是NULL。即使这样,显式初始化也没什么不好。

GetWindowRect该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
函数原型:BOOL GetWindowRect(HWND hWnd,LPRECT lpRect);
在Vis……
[/Quote]
LPRECT r1=NULL和LPRECT r1=0不同吗??
LPRECT r1=NULL我也试了,不行,编译器没有报错,但是读不出坐标...

傻X 2012-08-19
  • 打赏
  • 举报
回复
LP代表long point指针
whucv 2012-08-19
  • 打赏
  • 举报
回复
LPRECT r1=NULL;初始化试一试
指针变量初始化为NULL是个好习惯。
全局变量通常会被初始化为0,对于指针就是NULL。即使这样,显式初始化也没什么不好。

GetWindowRect该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
函数原型:BOOL GetWindowRect(HWND hWnd,LPRECT lpRect);   
在Visual Studio 2005中,函数原型为
void GetWindowRect(LPRECT lpRect) const;
参数:   
hWnd:窗口句柄。   
lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。

  • 打赏
  • 举报
回复
::GetWindowRect(gameh,&r1);
第二个参数是LRECT,也就是一个指向矩形结构对象的指针
之前那个传递的是矩形对象的变量值

16,472

社区成员

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

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

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