我做了个小系统,是基于single document的,在View里放了个CListCtrl来显示从数据库里读出的数据记录。当运行时,主窗体打开后默认不是全屏,需要最大化才是
满屏。然而主窗体最大化后CListCtrl并没有跟着放大,还是原来那么小,我觉得这样不爽,下面是view里的OinitUpdate方法:
//
//
void CMaterial_MISView::OnInitialUpdate() 
{
CView::OnInitialUpdate();
CRect rect;
GetClientRect(rect);
rect.top+=0;
plist.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,rect,this,1);
plist.SetBkColor(RGB(255,255,255));
plist.SetTextColor(RGB(0,0,0));
plist.SetTextBkColor(RGB(117,151,240));
plist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
//设置表头
plist.InsertColumn(0,_T("物资编号"),LVCFMT_LEFT,100);
plist.InsertColumn(1,_T("物资名称"),LVCFMT_LEFT,100);
plist.InsertColumn(2,_T("规格型号"),LVCFMT_LEFT,100);
plist.InsertColumn(3,_T("物资种类"),LVCFMT_LEFT,100);
plist.InsertColumn(4,_T("单位"),LVCFMT_LEFT,100);
         ......
//
}
//
请问:
(1)我如何让主窗体一打开就是满屏的?
 (2)如何让CListCtrl跟着主窗体的放大而放大?
谢谢!
马上给分!!!

解决方案 »

  1.   

    1 在C...App::InitInstance中找到ShowWindow语句,改成ShowWindow(SW_MAXIMIZE);
    2 响应视图类的OnSize(),在里面调整控件大小。
      

  2.   

    感谢这位兄弟,主窗体是可以一启动就最大化了,但是View里的CListCtrl还是没有跟着放大阿?现在该怎么办?
      

  3.   

    获取VIEW的ClientRect而后用MoveWindow
      

  4.   

    兄弟,我按照你说的做了:
    CRect rect;
    GetClientRect(rect);
    MoveWindow(rect);
    没有效果
      

  5.   

    你调用的是视图的MoveWindow吧,应该调用ListCtrl的MoveWindow
      

  6.   

    兄弟
    我按照你说的,运行时抱错:
    CRect rect;
    GetClientRect(rect);
    plist.MoveWindow(rect);
      

  7.   

    你调试的时候看一下rect的值,看看是不是有问题,或者自己设置一个固定值看看,如果还不行那就是你的plist的问题了!
      

  8.   

    我根据你说的调试了下,下面是rect的值:
    rect={top=0,left=0,bottom=472,right=756},其实并不是屏幕大小。
    很显然,还是主窗口初始化的值大小,我能否先获得客户端的屏幕大小,然后再把这个值
    赋给这个rect?如果能,怎么做?我是菜鸟,请说详细点!
    谢谢!!
      

  9.   

    int cxScreen = ::GetSystemMetrics(SM_CXSCREEN);//获得屏幕宽
    int cyScreen = ::GetSystemMetrics(SM_CYSCREEN);// 获得屏幕高
    如果我想把{top=0 bottom=cyScreen left=0 right=cxScrenn}这组值赋给
    rect,应该怎么写?
      

  10.   

    老大们,直接用CListView岂不是更好^_^
      

  11.   

    1.在主应用程序中的初始化实例函数InitInstance()函数中如下设置m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);m_pMainWnd->UpdateWindow();即可使主窗口在启动时为最大化显示方式.
    2.至于说使控件和窗口同时变化大小.可以在该控件所在的view中先获得该View的大小即Rect,然后用该控件的MoveWindow(Rect)函数实现.