DeferWindowPos没有效果....WHY?

wangsiyuanoo 2009-12-21 11:43:06
为了防止在改变窗口大小的时候会引起窗口重绘,所以用DeferWindowPos来代替MoveWindow,
但,DeferWindowPos并没有改变窗口的大小和位置,最后还是得用MoveWindow才行。。。。
到底是哪里错了呢?
void CSplitterWndEx::RefreashRect()
{
HDWP hdwp = BeginDeferWindowPos(3);

int iOffset = m_iNewWidth - m_iOldWidth;

CGameTreeView * pGameTreeView = g_GameManager.m_ViewManager.GetGameTreeView();
SAFE_CHECKWND( pGameTreeView )
{
CRect rectTree;
pGameTreeView->m_TC_GameTree.GetClientRect(&rectTree);
rectTree.right += iOffset;
DeferWindowPos(hdwp, pGameTreeView->m_TC_GameTree.m_hWnd, NULL, 0, 0, rectTree.Width(), rectTree.Height(),SWP_NOMOVE | SWP_NOZORDER);
//pGameTreeView->m_TC_GameTree.MoveWindow(&rectTree, FALSE);
}

CTabView * pTabView = g_GameManager.m_ViewManager.GetTabView();
SAFE_CHECKWND( pTabView )
{
CRect rectTab;
pTabView->m_TabCtrl.GetClientRect(&rectTab);
rectTab.right -= iOffset;
DeferWindowPos(hdwp, pTabView->m_TabCtrl.m_hWnd, NULL, 0, 0, rectTab.Width(), rectTab.Height(),SWP_NOMOVE | SWP_NOZORDER);
//pTabView->m_TabCtrl.MoveWindow(&rectTab, FALSE);

CFirstHtmlDlg * pFirstHtmlDlg = g_GameManager.m_DlgManager.GetFirstHtmlDlg();
SAFE_CHECKWND( pFirstHtmlDlg )
{
CRect rectItem;
pTabView->m_TabCtrl.GetItemRect(0, &rectItem);

CRect rectHtmlDlg;
pFirstHtmlDlg->GetClientRect(&rectHtmlDlg);
rectHtmlDlg.top = rectItem.bottom;
rectHtmlDlg.right -= iOffset;
rectHtmlDlg.bottom += rectItem.bottom;
DeferWindowPos(hdwp, pFirstHtmlDlg->m_hWnd, NULL, 0, 0, rectHtmlDlg.Width(), rectHtmlDlg.Height(),SWP_NOMOVE | SWP_NOZORDER);
//pFirstHtmlDlg->MoveWindow(&rectHtmlDlg, FALSE);
}

}

EndDeferWindowPos(hdwp);
}
...全文
383 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tigercopy 2009-12-21
  • 打赏
  • 举报
回复
同上
sandyandy 2009-12-21
  • 打赏
  • 举报
回复
楼上正解
oldn123 2009-12-21
  • 打赏
  • 举报
回复
SWP_NOMOVE 这个你都加了,他还怎么move 了

16,551

社区成员

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

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

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