PROPDLG 範例:示範屬性工作表支援
更新:2007 年 11 月
PROPDLG 範例說明屬性工作表 (Property Sheet) 或索引標籤式對話方塊的 MFC 支援。PROPDLG 也說明了非強制回應小型框架視窗。
PROPDLG 是一個簡單的物件繪圖程式,使用屬性工作表來輸入目前選取之物件的形狀和色彩屬性。如需具備更完整功能的物件繪圖程式範例,請參閱 DRAWCLI 範例。
安全性注意事項: |
---|
這個程式碼範例僅供概念說明之用,同時因為範例中的程式碼撰寫並沒有周全的顧及所有安全性問題,所以本範例不適用於實際執行的應用程式或網站中。如果使用者擅自將範例程式碼用於其他意圖而導致連帶事件或重大損害時,Microsoft 將不承擔任何責任。 |
若要取得範例和指示以便進行安裝:
按一下 Visual Studio [說明] 功能表上的 [範例]。
如需詳細資訊,請參閱尋找範例檔案。
最新版的完整範例清單可從 Visual Studio 2008 範例網頁 (英文) 取得。
您也可以將範例置於電腦硬碟中。根據預設,範例和讀我檔案都會複製到 \Program Files\Visual Studio 9.0\Samples\ 下的資料夾中。對於所有的 Visual Studio Express 版,所有範例都可在線上找到。
建置和執行範例
若要建置並執行 PROPDLG 範例
開啟 propdlg.sln 方案。
在 [建置] 功能表上,按一下 [建置]。
在 [偵錯] 功能表上,按一下 [啟動但不偵錯]。
執行範例時,請在檢視中的任何位置按一下滑鼠,加入新的形狀 (開始都是固定大小的矩形)。在其他地方按一下滑鼠,可加入更多的形狀。若要選取形狀,請按一下該形狀。[物件] 功能表提供三種屬性工作表,用來更新目前選取之物件的屬性。通常,實際的應用程式只會提供其中一種類型的屬性工作表:
Simple Property Sheet
一個含有 [Style] 和 [Shape] 索引標籤的快顯對話方塊。按一下 [確定],可以將屬性套用至目前選取的物件,並結束對話方塊。按一下 [Canael],可以在不套用屬性的情況下直接結束對話方塊。在說明過程中,[Apply Now] 和 [Help] 按鈕會一直保持為停用狀態。Property Sheet with Preview
這也是含有兩個索引標籤的快顯對話方塊。這個對話方塊還有一個預覽子視窗。這個預覽視窗會顯示物件在套用屬性工作表目前值之後的樣子,為您說明要如何自訂屬性工作表的配置。這個範例也會實作 [Apply Now] 按鈕,每當您變更任何屬性時就會啟用這個按鈕。Miniframe Property Sheet
這是小型框架視窗內的非強制回應屬性工作表對話方塊。這個非強制回應對話方塊中的屬性會一直反映目前選取的物件。對屬性工作表中的值所做的變更會立即套用至目前選取的物件。
關鍵字
本範例會使用下列關鍵字:
AfxGetMainWnd; CCmdUI::Enable; CDC::GetClipBox; CDialog::DoModal; CDocument::OnNewDocument; CDocument::SetModifiedFlag; CDocument::UpdateAllViews; CFrameWnd::Create; CFrameWnd::GetActiveFrame; CFrameWnd::GetActiveView; CFrameWnd::LoadFrame; CMDIFrameWnd::MDIGetActive; CObject::AssertValid; CObject::Dump; CObject::Serialize; CPen::CreatePen; CRect::Height; CRect::IntersectRect; CRect::IsRectNull; CRect::PtInRect; CRect::Width; CStatusBar::Create; CStatusBar::SetIndicators; CString::LoadString; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::DoPreparePrinting; CView::GetDocument; CView::OnBeginPrinting; CView::OnDraw; CView::OnEndPrinting; CView::OnPreparePrinting; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::RegisterShellFileTypes; CWnd::CenterWindow; CWnd::Create; CWnd::DoDataExchange; CWnd::FromHandle; CWnd::GetClientRect; CWnd::GetParent; CWnd::InvalidateRect; CWnd::IsWindowVisible; CWnd::OnCreate; CWnd::OnEraseBkgnd; CWnd::OnKeyDown; CWnd::OnLButtonDblClk; CWnd::OnLButtonDown; CWnd::OnPaint; CWnd::SendMessage; CWnd::ShowWindow; CWnd::UpdateWindow; DragAcceptFiles; Ellipse; FillRect; GetParent; GetWindowRect; RGB; Rectangle; RoundRect; SelectObject; SendMessage; SetFocus; SetWindowPos; UpdateWindow
注意事項: |
---|
部分範例 (包括本範例) 尚未經過改寫,無法反映出目前在 Visual C++ 精靈、程式庫以及編譯器方面的變更,不過還是可以示範如何完成您要進行的工作。 |