CPropertySheet in DAORecordView
Patrik Ekholm -- raven@ludd.luth.se Wednesday, August 21, 1996 Environment: VC++ 4.1, Win95 Hi all, I saw some time ago a thread about PropertySheets as views. The original question was about how to use a CPropertySheet as a CFormView. One of the conclusions was that it can be done if the PropertySheetView is derived from CScrollView. But I want to use PropertySheets with CDAORecordViews. So my question(s) is: * What would be the easiest way to accomplish this? (PropertySheets in a DAORecordView) * Can it be done in the same way as with CScrollView? In the thread an 4.2 example was mentioned (snapvw), but since I just got 4.1 I'm kinda stuck there... Is it possible to get the example somwhere on the net? (www.microsoft.com) Is it legal for someone of you to mail it to me? If so, I would appreciate it greatly... Thanks in advance. -- Patrik Ekholm raven@ludd.luth.se +46 (0)920 22 22 12 Rdev DataKonsult / MECAD Karhusvagen 4:215 S-977 54 Lulea Sweden
Andi Giri -- agiri@ctiis.com Wednesday, August 28, 1996 >>Environment: VC++ 4.1, Win95 >>I saw some time ago a thread about PropertySheets as views. >>The original question was about how to use a CPropertySheet >>as a CFormView. >>But I want to use PropertySheets with CDAORecordViews. >>So my question(s) is: >> * What would be the easiest way to accomplish this? >> (PropertySheets in a DAORecordView) Yes. Create ur own CPropSheetView class derived from CDAORecordView class. Override OnCreate() and OnInitialUpdate() as follows. int CPropSheetView::OnCreate(LPCREATESTRUCT lpCreateStruct) { TRACE("[%s - %d] - CPropSheetView::OnCreate().....\n", __FILE__, __LINE__); if (CFormView::OnCreate(lpCreateStruct) == -1) return -1; // Create the modeless property sheet. You should add the // property pages before creating the property sheet ASSERT(m_pPSExample1View); m_pPSExample1View->AddPage(&m_ViewGeneralPage); m_pPSExample1View->AddPage(&m_ViewDebugPage); m_pPSExample1View->AddPage(&m_ViewCplusPage); if (!m_pPSExample1View->Create(this, WS_SYSMENU | WS_CHILD | WS_VISIBLE, 0)) { return -1; } m_pPSExample1View->SetImageList(IDB_TVBMPIMG, 16, 1, RGB(255,0,0)); CRect rectSheet, rectWindow; m_pPSExample1View->GetWindowRect(rectSheet); rectWindow = rectSheet; CalcWindowRect(rectWindow); // Adjust the positions of the frame and property sheet SetWindowPos(NULL, rectWindow.left,rectWindow.top, rectWindow.Width() + 10, rectWindow.Height(), SWP_NOZORDER | SWP_NOACTIVATE); m_pPSExample1View->SetWindowPos(NULL, 0, 0 ,rectSheet.Width(), rectSheet.Height(), SWP_NOZORDER | SWP_NOACTIVATE); return 0; } ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// void CPropSheetView::OnInitialUpdate() { TRACE("[%s - %d] - CPropSheetView::OnInitialUpdate().....\n", __FILE__, __LINE__); CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(FALSE); ResizeParentToFit(TRUE); } For further details, refer to page 420 of the book "Visual C++ MasterClass" by WROX Press. Andi Giri
| Вернуться в корень Архива |