3分问题!!分割窗口,为什么把view改为CScrollView,编译正常,但运行时在视图中一滚动就出错!!!(不改为CScrollView也出错)!

sytd 2001-12-27 08:36:28
??分割窗口,为什么把view改为CScrollView,编译正常,但运行时在视图中一滚动就出错!!!(不改为CScrollView也出错)!
...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
weijs1 2001-12-28
  • 打赏
  • 举报
回复
有时也会啊
sytd 2001-12-28
  • 打赏
  • 举报
回复
不关OnSize()的事情,因为只要一滚动鼠标就出错误提示
而且OnSize()也试过了
SauMa 2001-12-28
  • 打赏
  • 举报
回复
是不是因为没有添加OnSize()之类的函数?
这样当形状,大小一改变就会出错的
sytd 2001-12-28
  • 打赏
  • 举报
回复
help me!!!!!
sos sos sos sos sos sos sos sos sos sos sos sos sos sos sos sos sos sos sos sos sos
sytd 2001-12-28
  • 打赏
  • 举报
回复
m_wndSplitter.CreateStatic(this,1,2);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(100,100),pContext);
m_wndSplitter.CreateView(0,1,pContext->m_pNewViewClass ,CSize(900,900),pContext);
return TRUE;
这是分割窗口代码


class CxsxxView : public CScrollView

IMPLEMENT_DYNCREATE(CZxguanliView, CScrollView)

BEGIN_MESSAGE_MAP(CZxguanliView, CScrollView)
//{{AFX_MSG_MAP(CZxguanliView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()
keynes 2001-12-28
  • 打赏
  • 举报
回复
void CClientView::OnDraw(CDC* pDC)
{

CClientDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
TEXTMETRIC tm;
int iYValue;
pDC->GetTextMetrics(&tm);
iYValue = 0;
for (int iLine = 0; iLine <= m_pDoc->m_lLineNumber; iLine++)
{
pDC->TextOut(0,iYValue, m_pDoc->m_csText[iLine], m_pDoc->m_csText[iLine].GetLength());
iYValue += tm.tmHeight;
}
SetScrollSizes(MM_TEXT, CSize(0, ((int) m_pDoc->m_lLineNumber+1) * tm.tmHeight));
return;
}

void CClientView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
CSize sizeTotal;
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);
m_pDoc = GetDocument();
m_pParentWnd = GetParent();
m_pParentMenu = m_pParentWnd->GetMenu();
TEXTMETRIC tm;
CRect rectServerSize;
CClientDC dc(this);
dc.GetTextMetrics(&tm);
SetScrollSizes( MM_TEXT, CSize(0,0), CSize(0,(MAX_LINES*tm.tmHeight)), CSize(0, tm.tmHeight));
GetWindowRect( rectServerSize );
GetParentFrame()->MoveWindow( rectServerSize.left, rectServerSize.top, (MAX_COLUMNS*tm.tmAveCharWidth), (24*tm.tmHeight), TRUE);

return;
}
lengnuan 2001-12-28
  • 打赏
  • 举报
回复
这个有没有?

void CMyView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();

CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);
}
sytd 2001-12-28
  • 打赏
  • 举报
回复
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(100,100),pContext);本人发现 CLeftView继承了CTreeView后就有这个问题出现,一滚动就提示出错!!!
继承其他类时,没有这个问题,
为什么???
当我继承CScroollView时,滚动条用不起,真的奇怪,
为什么呢,???????
MayFlower 2001-12-27
  • 打赏
  • 举报
回复
如果在VC6里,在Wizard生成时可以用分割窗口
MayFlower 2001-12-27
  • 打赏
  • 举报
回复
bu不会有问题的,看你的源代码,mainframe里的
dby 2001-12-27
  • 打赏
  • 举报
回复
应该不会,我写了好几个都没有问题,把你的代码贴上来

16,551

社区成员

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

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

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