Здравствуйте, clon, Вы писали:
C>Ситуация такова:
C>Имеются 2 класса порожденных от CFormView и от CListView.
C>Они разделены сплиттером. Печать и предпросмотр осуществляется из CFormView.
C>Когда этот вид активный — все нормально.
C>Необходимо чтобы печать могла осуществляться и втом случае ечли активен и CListView.
C>В CListView добавил:
C> ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
C> ON_COMMAND(ID_FILE_PRINT_DIRECT, OnFilePrint)
C> ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
C>а также:
C> virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
C> virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
C> virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
C> virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
C> virtual void OnFilePrintPreview (CDC* pDC, CPrintInfo* pInfo);
C>
C>Перенапрвлю соотвествующие мессаги из CListView в CFormView.
C>В дебажной версии — все нормально, в релизе уже самое наличие "OnFilePrintPreview" без какого либо кода приводит к крэшу приложения.
почему крэшится сказать сложно, но проблему в целом можно решить по другому
это нодо добавить в CMainFrame
ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
void CMainFrame::OnFilePrint()
{
CView * pView = m_wndSplitter.GetPane(0, 0); // GetFormView
pView->SendMessage(WM_COMMAND, ID_FILE_PRINT);
}
void CMainFrame::OnFilePrintPreview()
{
CView * pView = m_wndSplitter.GetPane(0, 0); // GetFormView
pView->SendMessage(WM_COMMAND, ID_FILE_PRINT_PREVIEW);
}
и все