vc++中,如何根据一个窗口的ID得到此窗口的句柄。然后改变其大小? 若是直接GetWindowRect(&brect);好像只
vc++中,如何根据一个窗口的ID得到此窗口的句柄。然后改变其大小?若是直接GetWindowRect(&brect);好像只能得到目前活动的窗口大小另外,SetWind...
vc++中,如何根据一个窗口的ID得到此窗口的句柄。然后改变其大小?
若是直接GetWindowRect(&brect);好像只能得到目前活动的窗口大小
另外,
SetWindowPos(hwnd,400,200,bx,by,SWP_SHOWWINDOW);里的hwnd是不是也默认关联到活动窗口的?
我用了3L的方法,::GetWindowRect(hWnd,&rect),得到的大小却是0。另外,windows7中SetWindowPos(hwnd,400/x,200/y,bx,by,SWP_SHOWWINDOW);这一句好像有问题,执行到这就不行了。怎么回事? 展开
若是直接GetWindowRect(&brect);好像只能得到目前活动的窗口大小
另外,
SetWindowPos(hwnd,400,200,bx,by,SWP_SHOWWINDOW);里的hwnd是不是也默认关联到活动窗口的?
我用了3L的方法,::GetWindowRect(hWnd,&rect),得到的大小却是0。另外,windows7中SetWindowPos(hwnd,400/x,200/y,bx,by,SWP_SHOWWINDOW);这一句好像有问题,执行到这就不行了。怎么回事? 展开
5个回答
展开全部
HANDLE hWnd = GetDlgItem(ID_YOURID)->GetSafeWnd();
或许可以获得句柄吧。
改变大小的话可以使用MoveWindow的方法。
其实MFC里的大部分函数都有两个版本
比如GetWindowRect(LPRECT lpRect);
其实它是一个成员函数,它间接调用了windows提供的接口
BOOL GetWindowRect( HWND hWnd,
LPRECT lpRect
);
因此如果你想获得其他窗口的信息,你就直接调用windows提供的接口就可以了。
windows提供的接口多一个参数是窗口句柄,而成员函数由于窗口就是自己,因此为了方便程序员使用就省去了第一个参数。
或许可以获得句柄吧。
改变大小的话可以使用MoveWindow的方法。
其实MFC里的大部分函数都有两个版本
比如GetWindowRect(LPRECT lpRect);
其实它是一个成员函数,它间接调用了windows提供的接口
BOOL GetWindowRect( HWND hWnd,
LPRECT lpRect
);
因此如果你想获得其他窗口的信息,你就直接调用windows提供的接口就可以了。
windows提供的接口多一个参数是窗口句柄,而成员函数由于窗口就是自己,因此为了方便程序员使用就省去了第一个参数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MoveWindow一般用于当前窗口中的子窗口相对主窗口的位置进行调整
setWindowPos一般用于主窗口相对屏幕的位置进行调整
GetWindowRect的话就这样用:
CRect rect;
HWND hWnd = GetDlgItem(控件ID)->GetSafeHwnd();
::GetWindowRect(hWnd, &rect);
rect就是所需要的了。
/////////////////////////////////////////
你的hWnd是否为空,为空的话就是控件此时还没有生成,你应该先创建该控件,然后ShowWindow,把它show出来,再按照上面的方法,可得到rect
setWindowPos一般用于主窗口相对屏幕的位置进行调整
GetWindowRect的话就这样用:
CRect rect;
HWND hWnd = GetDlgItem(控件ID)->GetSafeHwnd();
::GetWindowRect(hWnd, &rect);
rect就是所需要的了。
/////////////////////////////////////////
你的hWnd是否为空,为空的话就是控件此时还没有生成,你应该先创建该控件,然后ShowWindow,把它show出来,再按照上面的方法,可得到rect
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GetDlgItem(控件ID)->GetSafeHwnd();
改变大小:setWindowPos和MoveWindow 函数都可以。
改变大小:setWindowPos和MoveWindow 函数都可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改变里面的值?只需要重新给TEXTBOX赋值即可,和句柄无关。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GetDlgItem(控件ID)->GetWindowRect(&brect);
GetDlgItem(控件ID)->movewindow(CRect());
GetDlgItem(控件ID)->movewindow(CRect());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询