程式語言 - Visual C++ 6.0 - CScrollView Dialog



在撰寫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);