急问关于分隔窗口界面刷新的问题!

xwolf1979 2005-08-23 05:26:56
我在MainForm里面用分隔条分出一部分专门调用显示对话框
此对话框的属性中VSCroll为真,然后我在下面函数里添加了下拉条的响应命令
void CAlarmDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
UpdateData(TRUE);
int nMinPos;
int nMaxPos;
int nOffset = 10;
SCROLLINFO info;
GetScrollRange(SB_VERT, &nMinPos, &nMaxPos);
nMaxPos = GetScrollLimit(SB_VERT);
int nCurPos = GetScrollPos(SB_VERT);
CRect rect;
GetWindowRect(rect);
switch(nSBCode) {
     ...
case SB_THUMBTRACK:
{
int postmp2 = nCurPos;
nCurPos = nPos;
ScrollWindowEx(0,postmp2-nCurPos,NULL,NULL,NULL,NULL,SW_SCROLLCHILDREN);
InvalidateRect(rect);
...

}

但是运行后,来回托动下拉条几次就会出现调试错误,提示为“未知错误0x80000003”
如果注释掉InvalidateRect(rect),这个错误就不会出现,但界面也无法刷新了。
请问那位知道或碰到过这样的问题的可以指教一下么!不胜感激!!
着急中。。。。
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwolf1979 2005-08-24
  • 打赏
  • 举报
回复
对 milozy1983(跳蚤侦探):
我单独将这段代码放到一个新工程里,运行后,来回拖动滚动条几十次后,也出现了上述错误。
xwolf1979 2005-08-24
  • 打赏
  • 举报
回复
用GetClientRect也同样有问题阿
不知道有没有用VSCroll的例子,还有就是拖动滚动条时的闪烁问题应怎么解决呢?
goodboyws 2005-08-24
  • 打赏
  • 举报
回复

CRect rect;
GetWindowRect(rect);
InvalidateRect(rect);
用法不对啊
应该是
CRect rect;
GetClientRect(rect);
InvalidateRect(rect);
或者你的代码不完整??
xwolf1979 2005-08-24
  • 打赏
  • 举报
回复
对 milozy1983(跳蚤侦探):
请问能否把你测试我的代码的程序发给我看看呢?我想对照一下也许能找到答案。
xwolf1979@163.com 谢了!!

对 dirdirdir3(风) :
OnPaint和OnDraw函数没有改过。
dirdirdir3 2005-08-23
  • 打赏
  • 举报
回复
onpaint,ondraw里面做了什么?
milozy1983 2005-08-23
  • 打赏
  • 举报
回复
我试了下你的代码没出问题,你是否正确使用FormView了呢?

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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