Windows/MFC

페이지 설정 공통 다이얼로그 박스 CPageSetupDialog

aucd29 2013. 10. 2. 17:52
페이지 설정 CPageSetupDialog

[code]
PSD_DEFAULTMINMARGINS : 페이지 여백의 최소값을 프린터 최소값과 같은 값으로 설정
PSD_MARGINS : 페이지 설정 다이얼로그 박스의 여백 입력 영역을 활성화 시킨다.
PSD_INTHOUSANDTHSOFINCHES : 다이얼로그 박스의 여백 입력 영역 단위를 1/1000인치 단위로 설정한다.

CWnd* pParentWnd //부모 윈도우를 지정한다.

이 다이얼로그 박스 역시 DoModal()멤버 함수를 호출하여 화면에 다이얼로그 박스를 나타낸 후에 사용자의 입력을 받고 다음의 멤버함수를 이용 사용자의 입력값을 얻어올수 있다.

CString GetDriveName() const;
CString GetDeviceName() const;
CString GetportName() const;
HDC CreatePrinterDC(); //출력을 위한 프린터의 디바이스 컨텍스트를 얻는다.
CSize GetPaperSize() const; // 프린터에서 사용하는 용지 크기를 얻는다.
void GetMargins(LPRECT lpRectMargins, LPRECT lpRectMinMargins) const //현재 설정된 여백값 얻음
[/code]

[code]
void CCommonDlgView::OnPage()
{
    CPageSetupDialog dlg(PSD_MARGINS | PSD_INHUNDREDTHSOFMILLIMETERS);

    if(dlg.DoModal() == IDOK)
    {
        RECT rcMargin, rcMinMargin;
        CString strTemp;

        dlg.GetMargins(&rcMargin,&rcMargin); //페이지 여백의 정보 출력한다.
        strTemp.Format("(Left,Top) : (%d mm, %d mm)\r\n(Right,Bottm) | (%d mm, %d mm)",
                        rcMargin.left/100, rcMargin.top/100);
        MessageBox(strTemp, "여백정보출력");
    }
}[/code]