在撰寫MFC(Microsoft Foundation Class)的Dialog視窗時,一般的Dialog視窗是不具備ScrollBar功能,使用者可以自己寫一個Scroll Class來處理這樣的事情,不過這樣的做法會有點複雜,幸好MFC本身就已經有CSrollView這個類別,只要繼承就可以很容易的使用Scroll視窗功能,當然使用者也可以不用繼承,直接使用CSrollView類別,但是,當需要更改底層的視窗行為時就會有一定的困難(如:更改背景顏色),司徒今天介紹如何在Dialog中加入CScrollView類別
步驟如下:
1. 新增一個新類別(CMyScrollView)並且繼承於MFC的CScrollView類別
2. 在Dialog的Member新增一個成員(m_pMyView),該成員就是CMyScrollView的實體
3. 在Dialog的OnInitDialog()增加如下程式碼即可
CCreateContext context; SIZE sizeTotal; sizeTotal.cx = sizeTotal.cy = 1000; context.m_pCurrentDoc = NULL; m_pMyView = (CMyScrollView*)(RUNTIME_CLASS(CMyScrollView)->CreateObject()); m_pMyView->Create(NULL, NULL, WS_BORDER, CRect(0, 0, 1000, 1000), this, 123, &context); m_pMyView->SetScrollSizes(MM_TEXT, sizeTotal); ((CView*)m_pMyView)->EnableScrollBar(SB_BOTH); ((CView*)m_pMyView)->OnInitialUpdate(); m_pMyView->ShowWindow(SW_SHOW);