我目前有一个对话框窗口,其参数(大小和控件)在资源文件中定义。此对话框被添加为MAINFRM.cpp中的子窗口,如下所示:
在分辨率较低的显示器上,由于底部被切开,因此我添加了滚动条以滚动底部内容。我遇到的问题是,每当我开始滚动时,无论是通过拖动栏还是单击向上/向下按钮,对话框窗口都会被线条扭曲:
有问题的代码:
OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
int incrementor;
// Switch statement code to determine incrementor value
if (incrementor != 0)
{
ScrollWindow(0, -m_textHeight* incrementor, NULL, NULL);
SetScrollPos(SB_VERT, m_scrollNpos, TRUE);
UpdateWindow();
}
}
我已经尝试搜索类似的问题,并用以下代码替换了if
块代码,但无济于事:
RECT rect;
GetClientRect(&rect);
ScrollWindowEx(0, -m_textHeight* incrementor, &rect, NULL, NULL, NULL,
SW_INVALIDATE| SW_SCROLLCHILDREN);
SetScrollPos(SB_VERT, m_scrollNpos, TRUE);
UpdateWindow();
也将UpdateWindow()
替换为:
::RedrawWindow(m_hWnd, &rect, NULL, RDW_UPDATENOW | RDW_ALLCHILDREN);
是什么原因导致此问题?
谢谢!