Print из 2-х CView в Release версии (+)
От: clon Россия  
Дата: 21.01.03 05:39
Оценка:
Ситуация такова:
Имеются 2 класса порожденных от CFormView и от CListView.
Они разделены сплиттером. Печать и предпросмотр осуществляется из CFormView.
Когда этот вид активный — все нормально.
Необходимо чтобы печать могла осуществляться и втом случае ечли активен и CListView.
В CListView добавил:
ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)

а также:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
virtual void OnFilePrintPreview (CDC* pDC, CPrintInfo* pInfo);


Перенапрвлю соотвествующие мессаги из CListView в CFormView.
В дебажной версии — все нормально, в релизе уже самое наличие "OnFilePrintPreview" без какого либо кода приводит к крэшу приложения.

Подскажите в чем дело.
Нельзя ничего сказать о глубине лужи, пока не попадешь в нее.
Re: Print из 2-х CView в Release версии (+)
От: kmn Украина  
Дата: 21.01.03 08:44
Оценка:
Здравствуйте, 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);
}


и все
Re[2]: Спасибо.Это именно то ,что нужно. Все гениальное - пр
От: clon Россия  
Дата: 21.01.03 09:22
Оценка:
Нельзя ничего сказать о глубине лужи, пока не попадешь в нее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.