U E D R , A S I H C RSS

MFC/Print

{{| |}}

1. Print in MFC

document ์•ˆ์— ์ €์žฅ๋œ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์€ view ์˜ ์—ญํ•  ์ด๋‹ค. ์ด ๊ณผ์ •์€ ์ƒ๋‹นํžˆ ๋ณต์žกํ•˜๋‹ค.
์ถœ๋ ฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” view ํด๋ž˜์Šค๋กœ ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์€ ์ˆ˜๋งŽ์€ ํ•จ์ˆ˜๋“ค์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์•ผํ•œ๋‹ค.

2. ํ”„๋ฆฐํŠธ ๋กœ์ง๊ณผ ๊ด€๊ณ„๋œ ํ•จ์ˆ˜๋“ค

  • CView::OnPreparePrinting()
    ํŽ˜์ด์ง€ ์นด์šดํŠธ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. DoPreparePrinting() ํ˜ธ์ถœ

  • CView::OnBeginPrinting()
    GDI ์ž์›์„ ํ• ๋‹น
  • CDC::StartDoc()

  • CView::OnPrepareDC()
    ๋ทฐํฌํŠธ ์›์ ์„ ๋ณ€๊ฒฝ. DC์†์„ฑ๋“ค์„ ์„ค์ •
  • CDC::StartPage()

  • CView::OnPrint()
    ํ—ค๋”/๊ผฌ๋ฆฌ๋ง์„ ์ถœ๋ ฅํ•œ๋‹ค. ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • CDC::EndPage()
    ํŽ˜์ด์ง€๊ฐ€ ๋‚จ์•˜๋‹ค๋ฉด OnPrepareDC()๋กœ ์ด๋™ํ•˜์—ฌ ๋ฃจํ”„
  • CDC::EndDoc()
  • CView::OnEndPrinting()
    GDI์ž์› ํ•ด์ œ

  • ๋ทฐํด๋ž˜์Šค์˜ 5๊ฐœ์˜ ๋ฉค๋ฒ„ํ•จ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์žฌ์ •์˜ ํ•ด์•ผํ•œ๋‹ค. ์ตœ์†Œํ•œ 5๊ฐœ์ค‘์—์„œ OnPreparePrinting(), OnPrepareDC(), OnPrint()๋Š” ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค.
    ํ”„๋ฆฐํ„ฐ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์˜ ์ถœ๋ ฅ์€ ๋””์Šคํ”Œ๋ ˆ์ด์— ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. (GDI๊ฐ€ ์žฅ์น˜ ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ ์ž‡๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)
    ํ”„๋ฆฐํ„ฐ ์ž‘์—…๊ณผ ๊ด€๊ณ„๋˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋Š” CPrintInfo ํ˜•์˜ ๊ฐ์ฒด ํฌ์ธํ„ฐ๊ฐ€ ์ธ์ž๋กœ ์ „๋‹ฌ๋œ๋‹ค. ์ด ๊ฐ์ฒด๋Š” ํ”„๋ฆฐํ„ฐ ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ์—ฐ๊ฒฐ์‹œ์ผœ์ค€๋‹ค.

    3. CPrintInfo

    ํ”„๋ฆฐํŠธ ์ž‘์—…์—์„œ ๊ธฐ์ดˆ์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค. ํ”„๋ฆฐํŠธ job ์ •๋ณด, ํ”„๋ฆฐํŠธ ์ž‘์—… ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ €์žฅ๋œ๋‹ค.
    ๋ชจ๋“  ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” public ๋ณ€์ˆ˜๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    m_pPD CPrintDialog ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ. ์ถœ๋ ฅ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    m_bDirect ์ถœ๋ ฅ์ž‘์—…์ด ํ”„๋ฆฐํŠธ ๋Œ€ํ™”์ƒ์ž๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋ฉด TRUE ๊ทธ์™ธ์—๋Š” FALSE
    m_bPreview Print Preview ๊ฐ€ ์„ ํƒ๋˜๋ฉด TRUE, ์•„๋‹ˆ๋ฉด FALSE
    m_bContinuePrinting TRUE๋กœ ์„ค์ •๋˜๋ฉด ์ถœ๋ ฅ ๋ฃจํ”„๋ฅผ ๊ณ„์†ํ•œ๋‹ค. FALSE๊ฐ€ ๋˜๋ฉด ํ”„๋ฆฐํŠธ ์ž‘์—… ์ข…๋ฃŒ.
    m_nCurPage UINTํ˜•์‹์„ ๊ฐ–๋Š” ๊ฐ’์œผ๋กœ์„œ ํ˜„์žฌ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅ
    m_nNumPreviewPages UINT preview ์šฐ๋‹ˆ๋„์šฐ์— ๋‚˜ํƒ€๋‚˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋“ค์˜ ๋ฒˆํ˜ธ 1 or 2
    m_lpUserData LPVOID ํ˜•์‹์„ ๊ฐ–๋Š”๋‹ค. ์ƒ์„ฑํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ถœ๋ ฅ์ž‘์—…์— ๊ด€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. CPrintInfo ๊ฐ์ฒด์™€ ์—ฐ๊ณ„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
    m_rectDraw CRect ๊ฐ์ฒด. ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์„ ๋…ผ๋ฆฌ ์ขŒํ‘œ๋กœ ์ •์˜ ํ•œ๋‹ค.
    m_strPageDesc CString ๊ฐ์ฒด๋กœ ํ”„๋ฆฐํŠธ preview ๋™์•ˆ์— ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ํ”„๋ ˆ์ž„ ์›์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํฌ๋งท ๋ฌธ์ž์—ด์„ ํฌํ•จํ•œ๋‹ค.
    m_bDocObject ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด lPrint ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ฉด TRUE๋กœ ์„ค์ •๋˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” FALSE์ด๋‹ค.
    m_dwFlags m_bDocObject๊ฐ€ TRUE์ผ๋•Œ๋งŒ ์œ ํ˜ธ. DWORD๊ฐ’์œผ๋กœ lPrint::Print์— ์ „๋‹ฌ๋œ ํ”Œ๋ž˜๊ทธ
    m_nOffsetPage m_bDocObject๊ฐ€ TRUE์ผ๋•Œ๋งŒ ์œ ํšจ. lPrint job ์•ˆ์—์„œ ์ฒซ๋ฒˆ์งธ ํŽ˜์ด์ง€ offset์„ ์ค€๋‹ค.

    ๊ธฐํƒ€ public ํ•จ์ˆ˜๋„ ์ œ๊ณตํ•˜๋‹ค. ์ ๊ธฐ ๊ท€์ฐฎ๋‹ค. MSDN ์ฐพ์•„๋ณด๊ธธ;;

    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2021-02-07 05:23:42
    Processing time 0.0052 sec