RT
SetScrollSizes()函数有什么功用?没有了它是否窗口就不能完整接受WM_SIZE消息呢??
请参看
http://community.csdn.net/Expert/topic/3859/3859122.xml?temp=.4649011
我把SetScrollSizes注释掉,编译通过。
跟踪发现:当改变窗口大小时,OnSize(UINT nType, int cx, int cy)的nType始终为0。void CASServerView::OnInitialUpdate() 
{
CView::OnInitialUpdate();

// TODO: Add your specialized code here and/or call the base class
CSize sizeTotal;
sizeTotal.cx = sizeTotal.cy =100;
SetScrollSizes(MM_TEXT,sizeTotal);
          m_pDoc = GetDocument();
m_pDoc->SetTitle("服务端");
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); OnServerOpen();
return;
}

解决方案 »

  1.   

    SetScrollSizes()设置滚动条初始范围
      

  2.   

    nType有专门定义的值表示不同状态,如最大话,最小话等等.查查msdn就知道了0表示什么含义
      

  3.   

    上面说过了,不多说了。可能产生错误的原因:
    “identifier”: 未声明的标识符在可使用变量的类型前必须在声明中指定它。在可以使用函数前必须在声明或原型中指定该函数使用的参数。可能的原因 可能正在调用当前不受生成环境支持的 SDK 头文件中的函数。 
    省略必要的包含文件,尤其是在定义 VC_EXTRALEAN、WIN32_LEAN_AND_MEAN 或 WIN32_EXTRA_LEAN 时。这些符号从 windows.h 和 afxv_w32.h 中排除了一些头文件以加快编译。(在 windows.h 和 afxv_w32.h 中查找排除的头文件的最新说明。) 
    标识符名拼写错误。 
    标识符使用了错误的大小写字母。 
    字符串常数的后面缺少右引号。 
    命名空间范围不正确。例如,若要解析 ANSI C++ 标准库函数和运算符,则必须用 using 指令指定 std 命名空间。下面的示例未能编译,因为 using 指令被注释掉,并且在 std 命名空间中定义了 cout:
      

  4.   

    CScrollView::SetScrollSizes
    它是CScrollView的成员函数,可以在CScrollView和其派生类中调用。如果你的CASServerView不是从其派生的就会出错!!
      

  5.   

    to vcleaner(我没当大哥很久了.......) 
    正解!!真是厉害!!另外:为什么我的这个窗口大小的改变不能激活OnSize()事件呢??
      

  6.   

    为什么我的这个窗口大小的改变不能激活OnSize()事件呢??
    ==============================
    怎么可能呢?呵呵,除非你处理代码有问题。如果可以发到:[email protected],我看看。