Knowledge Base Nr: 00074 wordpad.cpp - http://www.swe-kaiser.de

Downloads:

Win32: WordPad bugfix: Papier quer bedrucken.

  
//Wordpad stellt nach dem neustart das seitenlayout nicht richtig ein.
//beim ausdruck von landscape gibt es deshalb probleme.
//die c++ sourcen von wordpad sind beim visual studio/vc++ dabei.
//folgende funktinen einfügen und der fehler ist behoben.

void CWordPadView::DoInitPage()
{
CPageSetupDialog dlg;
PAGESETUPDLG& psd = dlg.m_psd;
BOOL bMetric = theApp.GetUnits() == 1; //Zentimeter
psd.Flags |= PSD_MARGINS | (bMetric ? PSD_INHUNDREDTHSOFMILLIMETERS :
PSD_INTHOUSANDTHSOFINCHES);
int nUnitsPerInch = bMetric ? 2540 : 1000;
MulDivRect(&psd.rtMargin, m_rectMargin, nUnitsPerInch, 1440);
RoundRect(&psd.rtMargin);
// Holen des aktuellen Devices von der Applikation
PRINTDLG pd;
pd.hDevNames = NULL;
pd.hDevMode = NULL;
theApp.GetPrinterDeviceDefaults(&pd);
psd.hDevNames = pd.hDevNames;
psd.hDevMode = pd.hDevMode;

RoundRect(&psd.rtMargin);
MulDivRect(m_rectMargin, &psd.rtMargin, 1440, nUnitsPerInch);
theApp.m_rectPageMargin = m_rectMargin;
theApp.SelectPrinter(psd.hDevNames, psd.hDevMode);
theApp.NotifyPrinterChanged();
}


void CWordPadView::OnInitialUpdate()
{
CRichEditView::OnInitialUpdate();

DoInitPage();
}