单文档的项目,1024*768中,全屏显示正常,800*600时,单文档不是全屏,而是有滚动条
现在就是想让它在800*600时也是全屏,即没有滚动条,如何实现(左右的滚动条可保留)

解决方案 »

  1.   

    我的意思是,
    假如有CListCtrl在1024*768全屏显示,在800*600它就超出屏幕范围了,如何将它也调整成800*600,或者说是按原有比例缩小?
      

  2.   

    However, this depends on your listctrl's client size.
      

  3.   


    void CMyView::OnSize(UINT nType, int cx, int cy) 
    {
    CFormView::OnSize(nType, cx, cy);


    // TODO: Add your message handler code here
    int x=GetSystemMetrics(SM_CXSCREEN);
    int y=GetSystemMetrics(SM_CYSCREEN);
    CRect rect;
    m_List1.GetWindowRect(&rect);//运行到这产生异常
    rect.right=rect.right*x/1024;
    rect.bottom=rect.bottom*y/768;
    m_List1.MoveWindow(&rect);
       
    }
    这样写对不对呀?
      

  4.   

    SetScrollSizes不可以么?
    取得分辨率来设定
      

  5.   

    m_List1.GetWindowRect(&rect);//运行到这产生异常
    为什么会产生异常哩?
    改成GetDlgItem(IDC_LIST)->GetWindowRect(&rect),也产生异常呢?
    这是为什么呢?
    到底怎么才能获得控件的位置和大小呢?
      

  6.   

    应该是这样的

    if(m_List1.getsafewnd())
    {
       int x=GetSystemMetrics(SM_CXSCREEN);
       int y=GetSystemMetrics(SM_CYSCREEN);
       CRect rect;
       m_List1.GetWindowRect(&rect);//运行到这产生异常
       rect.right=rect.right*x/1024;
       rect.bottom=rect.bottom*y/768;
       m_List1.MoveWindow(&rect);
    }
      

  7.   

    m_List1.GetWindowRect(&rect);//运行到这产生异常
    为什么会产生异常哩?
    改成GetDlgItem(IDC_LIST)->GetWindowRect(&rect),也产生异常呢?
    这是为什么呢?
    到底怎么才能获得控件的位置和大小呢?
    -----------------------------------------------------如果在窗口还没有出来的时候就调用,就会出现异常。因为窗口的句柄还是空的。
    在一个安全的时机获得,并且在前面判断一下就好了。----------------------------------------------------
    以上方法难道不会导致缩得太小?
    不知道VC的字体大小可不可变
    ----------------------------------------------------
    窗口的大小是自己设置的,嫌小放大不就的了。其实只要计算出一个合适的数字就可以了。只是一个算术题而已。
    VC控件的字体是随便设置的,包括大小、颜色、编码、字体……。
    用 SetFont 方法就可以了。