用MoveWindow时候出现的奇怪的问题

ange11026 2006-10-13 06:50:36
我把其中的某些控件用MoveWindow重新确定了位置和大小,但只要一拉伸界面(对话框界面)或者最大化界面,某些从新确定位置的控件就又回到原来的位置,而另外一些就还固定在新位置上,这个是怎么回事呀?这些控件的属性完全一样,却有不同的情况发生,真是不明白,有没有高手帮帮我?
下面是我移动控件的源代码

void CSmartCDPlayerDlg::move_to_left(int move_x, int nID, bool isbig)
{
CString str;
static CRect RectButton;
GetWindowRect(&RectButton);
GetDlgItem(nID)->GetWindowRect(&RectButton);
ScreenToClient(&RectButton);//把屏幕坐标转化成用户坐标
static CRect f;
f.top=RectButton.top;
f.bottom =RectButton.bottom ;
f.left =RectButton.left ;
f.right =RectButton.right ;

if(isbig==FALSE) GetDlgItem(nID)->MoveWindow(f.left-move_x,f.top,f.right -f.left ,f.bottom -f.top );
else GetDlgItem(nID)->MoveWindow(f.left-move_x, f.top, f.right-f.left+move_x,f.bottom -f.top );

}
...全文
348 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pioneer_public 2006-11-08
  • 打赏
  • 举报
回复
在onsize中调用你上面的函数
ange11026 2006-11-08
  • 打赏
  • 举报
回复
太平洋老师,你能说的具体些吗?在OnSize里面如何用MoveWindow函数呀?
您看一下我的代码给我举个小例子行吗?先谢谢了!!!
syy64 2006-11-03
  • 打赏
  • 举报
回复
应该在OnSize里用MoveWindow函数。
ange11026 2006-10-14
  • 打赏
  • 举报
回复
我用SetWindowPos也出现同样的问题,如果再加上SWP_NOMOVE的话那控件根本就不能移动了,到底怎么回事那?
chenyang80425 2006-10-13
  • 打赏
  • 举报
回复
对,用SetWindowPos试试
三条猫 2006-10-13
  • 打赏
  • 举报
回复
用SetWindowPos试试,加上一个SWP_NOMOVE标志

16,472

社区成员

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

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

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