不太明白你的意思?为什么要用SetWindowPos函数呢?这是CWnd的成员函数,没有见过CScrollBar类的变量调用它的。我猜你是想在窗口改变大小时设置滚动条的位置,那应该是在主窗口的OnSize函数中用:
scrollbar.SetScrollPos(10);   应该就行了

解决方案 »

  1.   

    re:WaTaXiWaWaTaXi,我先用对话框工具加入了滚动条控件,然后用CLASSWIARD定义了CSCROLLBAR类型的变量,怎么办
      

  2.   

    我试了一下,用SetWidowPos根本没有反应的。应该用MoveWindow函数。不过呢,你的程序为什么会出错呢?原因出在OnSize函数上。在对话框初次显示之前,就会调用OnSize函数,而这时还没有调用DoDataExchange函数,也就是说这个时候你的scrollbar还没有和你的对话框上的相应控件发生联系,你可以调试一下,scrollbar.m_hwnd等于0的。因此会出错。加个if语句就是了:
    if(scrollbar.m_hwnd!=0)
    {
         scrollbar.MoveWindow(200,200,100,15);
    }
      

  3.   

    re:happylaodu感谢帮忙,今天上午刚请教了头儿,他就这么说,用SetWindowPos好象也可以,只是第一个参数要窗口的句柄,我无意设为了0一切正确,即(scrollbar.SetWindowPos(0,.))
    而调用GetSafeHwnd()要得到窗口句柄即(scrollbar.SetWindowPos((CWnd*)GetSafeHwnd(),.)反而运行错误,不得其解。