Re: Customizing Print Dialog
Gary I think we are having a bit of miscommunication.
I don't load anything into the image control. It's windows shell that does
that. What I have done is created a template exactly as it is in
CPrintDialog. The Image icon in CPrintDialog has the SS_ICON flag. If I
change it Bitmap then windows print dialog code won't be able to set the
image at all.
My extended CPrintDialog works exactly as it should in a Doc/View type
application (when I setup the new Template id of the CPrintDialog in
OnPreparePrinting method). But does not if I do that in the constructor of
my print dialog
This is all the code for my print dialog.
#pragma once
// LSPrintDialog dialog
class LSPrintDialog : public CPrintDialog
{
DECLARE_DYNAMIC(LSPrintDialog)
public:
LSPrintDialog(BOOL bPrintSetupOnly,
DWORD dwFlags = PD_ALLPAGES | PD_USEDEVMODECOPIES |
PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION,
CWnd* pParentWnd = NULL ); // standard constructor
virtual ~LSPrintDialog();
// Dialog Data
enum { IDD = IDD_PRINTDLGORD };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
BOOL m_PrintClues;
BOOL m_PrintFact;
BOOL m_PrintStatements;
};
////////////////////////////////////////////////////////////////
// LSPrintDialog.cpp : implementation file
//
#include "stdafx.h"
#include "LSEditor.h"
#include "LSPrintDialog.h"
// LSPrintDialog dialog
IMPLEMENT_DYNAMIC(LSPrintDialog, CPrintDialog)
LSPrintDialog::LSPrintDialog(BOOL bPrintSetupOnly,
DWORD dwFlags /*= PD_ALLPAGES |
PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION*/,
CWnd* pParentWnd /*= NULL */)
: CPrintDialog(bPrintSetupOnly,dwFlags,pParentWnd)
, m_PrintClues(FALSE)
, m_PrintFact(FALSE)
, m_PrintStatements(FALSE)
{
m_pd.nMinPage = 1 ;
m_pd.nMaxPage = 0xffff ;
m_pd.hInstance = AfxGetInstanceHandle() ;
m_pd.lpPrintTemplateName = MAKEINTRESOURCE(IDD) ;
m_pd.Flags |= PD_ENABLEPRINTTEMPLATE ;
AfxGetApp()->GetPrinterDeviceDefaults(&m_pd);
}
LSPrintDialog::~LSPrintDialog()
{
}
void LSPrintDialog::DoDataExchange(CDataExchange* pDX)
{
CPrintDialog::DoDataExchange(pDX);
DDX_Check(pDX, IDC_CLUES, m_PrintClues);
DDX_Check(pDX, IDC_FACT, m_PrintFact);
DDX_Check(pDX, IDC_STANDARDS, m_PrintStatements);
}
BEGIN_MESSAGE_MAP(LSPrintDialog, CPrintDialog)
END_MESSAGE_MAP()
// LSPrintDialog message handlers
AliR.
""Gary Chang[MSFT]"" <v-garych@online.microsoft.com> wrote in message
news:TZ9DSGPaGHA.4600@TK2MSFTNGXA01.phx.gbl...
Hi AliR,
Thanks for the response!
Based on that screenshot, the problem is the image's type--icon. All icon
images' shape format should be square, in your custom print dialog, its
size appears to be 48x48, I think this is an expected behavior for an icon
image.
In this regards, I suggest you don't use the icon type for that image, it
will fix this problem.
Thanks!
Best regards,
Gary Chang
Microsoft Online Community Support
==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================
This posting is provided "AS IS" with no warranties, and confers no
rights.