GetDeviceCaps

¿øÇü

int GetDeviceCaps(HDC hdc, int nIndex);

MFC ¿øÇü

int CDC::GetDeviceCaps( int nIndex ) const;

Àμö

¢ºhdc : DCÀÇ ÇÚµé

¢ºnIndex : Á¶»çÇÏ°íÀÚ ÇÏ´Â DCÀÇ ¼Ó¼ºÀÌ¸ç ´ÙÀ½ Áß ÇϳªÀÇ °ªÀ» ÁöÁ¤ÇØ ÁØ´Ù.

Àμö ¼³¸í

DRIVERVERSION

µå¶óÀ̹öÀÇ ¹öÀü

TECHNOLOGY

µð¹ÙÀ̽ºÀÇ Á¾·ù¸¦ Á¶»çÇÑ´Ù. ÀÌ °ªÀ» Á¶»çÇϸé DCÀÇ ´ë»ó ÀåÄ¡°¡ ÇÁ¸°ÅÍÀÎÁö È­¸éÀÎÁö¸¦ ±¸ºÐÇÒ ¼ö ÀÖ´Ù.

¸®ÅÏ°ª ¼³¸í

DT_PLOTTER

º¤ÅÍ Ç÷ÎÅÍ

DT_RASDISPLAY

·¡½ºÅÍ µð½ºÇ÷¹ÀÌ. ÀϹÝÀûÀ¸·Î ¸ð´ÏÅͶó°í »ý°¢ÇÏ¸é µÈ´Ù.

DT_RASPRINTER

·¡½ºÅÍ ÇÁ¸°ÅÍ. ÀϹÝÀûÀ¸·Î ÇÁ¸°ÅͶó°í »ý°¢ÇÏ¸é µÈ´Ù.

DT_RASCAMERA

·¡½ºÅÍ Ä«¸Þ¶ó.

DT_CHARSTREAM

ij¸¯ÅÍ ½ºÆ®¸²

DT_METAFILE

¸ÞŸ ÆÄÀÏ

DT_DISPFILE

µð½ºÇ÷¹ÀÌ ÆÄÀÏ

hdc°¡ ¸ÞŸ ÆÄÀÏÀÇ ÇÚµéÀÎ °æ¿ì Á¶»çµÇ´Â µð¹ÙÀ̽º Á¾·ù´Â CreateEnhMetaFile ÇÔ¼ö·Î ¸ÞŸ DC¸¦ »ý¼ºÇÒ ¶§ ÂüÁ¶ÇÑ µð¹ÙÀ̽ºÀÇ Á¾·ùÀÌ´Ù. hdc°¡ ¸ÞŸ DCÀÎÁö¸¦ ¾Ë°í ½ÍÀ¸¸é GetObjectType ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

HORZSIZE, VERTSIZE

ÀåÄ¡ÀÇ Å©±â¸¦ ¹Ð¸®¹ÌÅÍ ´ÜÀ§·Î Á¶»çÇÑ´Ù.

HORZRES, VERTRES

ÀåÄ¡ÀÇ Å©±â¸¦ Çȼ¿ ´ÜÀ§·Î Á¶»çÇÑ´Ù.

LOGPIXELSX, LOGPIXELSY

ÀÎÄ¡´ç Çȼ¿¼ö, Áï Çػ󵵸¦ Á¶»çÇÑ´Ù.

BITSPIXEL

Çȼ¿´Ü ºñÆ®¼ö¸¦ Á¶»çÇÑ´Ù. 15bpp, 16bpp´Â ¸ðµÎ 16À¸·Î Á¶»çµÈ´Ù.

PLANES

»ö»ó¸éÀÇ ¼ö¸¦ Á¶»çÇ쵂 ÀÌ °ªÀº ¸ðµç ÀåÄ¡¿¡ 1·Î °íÁ¤µÇ¾î ÀÖ´Ù.

NUMBRUSHES

µð¹ÙÀ̽º ºê·¯½ÃÀÇ °³¼ö

NUMPENS

µð¹ÙÀ̽º ÆæÀÇ °³¼ö

NUMFONTS

µð¹ÙÀ̽º ÆùÆ®ÀÇ °³¼ö

NUMCOLORS

ÀåÄ¡°¡ 8bpp ÀÌÇÏÀÏ ¶§ »ö»ó Å×À̺íÀÇ ¿£Æ®¸® °³¼ö¸¦ Á¶»çÇÑ´Ù. 8bpp ÀÌ»óÀÇ »ö»óÀ» °¡Áö´Â ÀåÄ¡ÀÎ °æ¿ì -1ÀÌ ¸®ÅϵȴÙ.

ASPECTX, ASPECTY

¼±À» ±×¸± ¶§ »ó´ëÀûÀÎ Æø°ú ³ôÀÌ

ASPECTXY

¼±À» ±×¸± ¶§ ´ë°¢¼±ÀÇ Æø

PDEVICESIZE

¿¹¾à

CLIPCAPS

ÀåÄ¡ÀÇ Å¬¸®ÇÎ ´É·ÂÀ» Á¶»çÇÑ´Ù. ÀåÄ¡°¡ »ç°¢ ¿µ¿ªÀ» Ŭ¸®ÇÎÇÒ ¼ö ÀÖÀ¸¸é 1À» ¸®ÅÏÇÏ¸é ±×·¸Áö ¾ÊÀ» °æ¿ì 0À» ¸®ÅÏÇÑ´Ù.

SIZEPALETTE

½Ã½ºÅÛ ÆÈ·¹Æ®ÀÇ ¿£Æ®¸® °³¼ö¸¦ Á¶»çÇÑ´Ù. RASTERCAPS¿¡ RC_PALETTE ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖÀ» ¶§, ±×¸®°í µå¶óÀ̹ö°¡ 16ºñÆ® À©µµ¿ìÁî¿Í ȣȯµÉ ¶§¸¸ À¯È¿ÇÏ´Ù. ¾Æ·¡ µÎ ¼Ó¼ºµµ ÀÌ¿Í µ¿ÀÏÇÏ´Ù.

NUMRESERVED

½Ã½ºÅÛ ÆÈ·¹Æ®ÀÇ ¿¹¾àµÈ ¿£Æ®¸® °³¼ö¸¦ ¸®ÅÏÇÑ´Ù.

COLORRES

ÀåÄ¡ÀÇ ½ÇÁ¦ »ö»ó ¼ö¸¦ bpp·Î Á¶»çÇÑ´Ù.

PHYSICALWIDTH, PHYSICALHEIGHT

ÇÁ¸°ÅÍ¿¡¸¸ ÇØ´çµÇ¸ç ÆäÀÌÁöÀÇ ½ÇÁ¦ Æø°ú ³ôÀ̸¦ Á¶»çÇÑ´Ù. Á¶»çµÇ´Â °ªÀº ³í¸® ´ÜÀ§°¡ ¾Æ´Ñ ÀåÄ¡ ´ÜÀ§À̸ç ÀμâÇÒ ¼ö ÀÖ´Â ¸éÀûº¸´Ù´Â Ç×»ó ´õ Å©´Ù. ¿ëÁöÀÇ ¸é Áß ½ÇÁ¦ Àμ⠰¡´ÉÇÑ ¿µ¿ª(Printable Area)´Â ¿ëÁö ¹Ù±ùÂÊÀÇ ¿©¹éÀ» Á¦¿ÜÇÑ Áß¾Ó ºÎºÐÀÌ´Ù.

PHYSICALOFFSETX, PHYSICALOFFSETY

Àμ⠰¡´ÉÇÑ ¿µ¿ª°ú ¿ëÁö¿ÍÀÇ °Å¸®¸¦ ÀåÄ¡ ´ÜÀ§·Î Á¶»çÇÑ´Ù.

VREFRESH

NT/2000 ÀÌÈÄ¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸é ÀåÄ¡ÀÇ ¼öÁ÷ ÁÖÆļö¸¦ Á¶»çÇÑ´Ù. 0 ¶Ç´Â 1ÀÌ Á¶»çµÉ °æ¿ì µðÆúÆ® ¼öÁ÷ ÁÖÆļö·Î ¼³Á¤µÇ¾î ÀÖ´Ù´Â ¶æÀÌ´Ù.

SCALINGFACTORX,
SCALINGFACTORY

ÇÁ¸°ÅÍÀÇ È®´ë ºñÀ²

BLTALIGNMENT

NT/2000 : ¼öÆò ±×¸®±â¿¡ »ç¿ëµÇ´Â Á¤·Ä°ªÀ̸ç Çȼ¿ÀÇ ¹è¼ö·Î Ç¥ÇöµÈ´Ù. ¿î¿µÃ¼Á¦´Â ±×¸®±â ¼ÓµµÀÇ Çâ»óÀÇ À§ÇØ Ç×»ó ÀÌ °ªÀÇ ¹è¼ö À§Ä¡¿¡ À©µµ¿ì¸¦ ±×¸°´Ù. ¸¸¾à ÀÌ °ªÀÌ 0ÀÌ¸é ¾×¼¿·¯·¹ÀÌÅÍ ±â´ÉÀÌ ÀÖ´Ù´Â ¶æÀ̸ç Á¤·ÄÀº ÇÏÁö ¾Ê´Â´Ù.

SHADEBLENDCAPS

98/ME, 2000ÀÌ»ó. ±×¸²ÀÚ ¹× ºí·»µù(Shading, Blending)´É·ÂÀ» Á¶»çÇÑ´Ù. Á¶»çÇÑ °á°ú°ªÀ» ´ÙÀ½ Ç÷¡±×µé°ú &¿¬»êÇÏ¿© ÇØ´ç ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖÀ¸¸é ÀåÄ¡°¡ ÀÌ ±â´ÉÀ» Áö¿øÇÏ´Â °ÍÀÌ´Ù. ÀÌÇÏÀÇ °ªµéµµ ¸¶Âù°¡ÁöÀÌ´Ù.

°ª ¼³¸í

SB_CONST_ALPHA

Handles the SourceConstantAlpha member of the BLENDFUNCTION structure, which is referenced by the blendFunction parameter of the AlphaBlend function.

SB_GRAD_RECT GradientFill ÇÔ¼ö·Î »ç°¢ÇüÀÇ ±×¶óµð¾ðÆ®¸¦ ±×¸± ¼ö ÀÖ´Ù.
SB_GRAD_TRI GradientFill ÇÔ¼ö·Î »ï°¢ÇüÀÇ ±×¶óµð¾ðÆ®¸¦ ±×¸± ¼ö ÀÖ´Ù.
SB_NONE ±×¸²ÀÚ ¹× ºí·£µù ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.
SB_PIXEL_ALPHA AlphaBlend ÇÔ¼ö·Î Çȼ¿º° ¾ËÆĸ¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
SB_PREMULT_ALPHA AlphaBlend ÇÔ¼ö·Î ¹Ì¸® °è»êµÈ ¾ËÆĸ¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 

RASTERCAPS

ÀåÄ¡ÀÇ ·¡½ºÅÍ Ãâ·Â ´É·ÂÀ» Á¶»çÇÑ´Ù.

°ª ¼³¸í

RC_BANDING

¹êµù Áö¿øÀÌ ¿ä±¸µÈ´Ù.

RC_BITBLT ºñÆ®¸Ê Àü¼ÛÀ» Áö¿øÇÑ´Ù. Áï BitBlt ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
RC_BITMAP64 64KB ÀÌ»óÀÇ ºñÆ®¸ÊÀ» Áö¿øÇÑ´Ù.
RC_DI_BITMAP Get(Set)DIBits ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
RC_DIBTODEV SetDIBitsToDevice ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Áï DIB¸¦ ÀåÄ¡·Î °ð¹Ù·Î Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
RC_FLOODFILL ¸é ä¿ì±â ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
RC_GDI20_OUTPUT 16ºñÆ®ÀÇ À©µµ¿ìÁî 2.0ÀÇ ±â´ÉÀ» Áö¿øÇÑ´Ù.
RC_PALETTE ÆÈ·¹Æ® ±â¹ÝÀÇ ÀåÄ¡ÀÌ´Ù.
RC_SCALING È®´ë¸¦ Áö¿øÇÑ´Ù.
RC_STRETCHBLT StretchBlt ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
RC_STRETCHDIB StretchDIBits ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 

CURVECAPS

ÀåÄ¡ÀÇ °î¼± ±×¸®±â ´É·ÂÀ» Á¶»çÇÑ´Ù.

°ª ¼³¸í

CC_NONE

°î¼±À» ±×¸± ¼ö ¾ø´Ù.

CC_CHORD chord¸¦ ±×¸± ¼ö ÀÖ´Ù.
CC_CIRCLES ¿øÀ» ±×¸± ¼ö ÀÖ´Ù.
CC_ELLIPSES Ÿ¿øÀ» ±×¸± ¼ö ÀÖ´Ù.
CC_INTERIORS ³»ºÎ¸¦ ä»öÇÒ ¼ö ÀÖ´Ù.
CC_PIE pie¸¦ ±×¸± ¼ö ÀÖ´Ù.
CC_ROUNDRECT µÕ±Ù »ç°¢ÇüÀ» ±×¸± ¼ö ÀÖ´Ù.
CC_STYLED ½ºÅ¸ÀÏÀÌ ÀÖ´Â °æ°è¼±À» ±×¸± ¼ö ÀÖ´Ù.
CC_WIDE ÆøÀÌ ³ÐÀº °æ°è¼±À» ±×¸± ¼ö ÀÖ´Ù.
CC_WIDESTYLED ÆøÀÌ ³ÐÀº ½ºÅ¸ÀÏÀÌ ÀÖ´Â °æ°è¼±À» ±×¸± ¼ö ÀÖ´Ù.

 

LINECAPS

ÀåÄ¡ÀÇ Á÷¼± ±×¸®±â ´É·ÂÀ» Á¶»çÇÑ´Ù.

°ª ¼³¸í

LC_NONE

¼±À» ±×¸± ¼ö ¾ø´Ù.

LC_INTERIORS ³»ºÎ¸¦ ä»öÇÒ ¼ö ÀÖ´Ù.
LC_MARKER ¸¶Ä¿¸¦ ±×¸± ¼ö ÀÖ´Ù.
LC_POLYLINE ´Ù°¢¼±À» ±×¸± ¼ö ÀÖ´Ù.
LC_POLYMARKER º¹¼ö°³ÀÇ ¸¶Ä¿¸¦ ±×¸± ¼ö ÀÖ´Ù.
LC_STYLED ½ºÅ¸ÀÏÀÌ ÀÖ´Â ¼±À» ±×¸± ¼ö ÀÖ´Ù.
LC_WIDE ÆøÀÌ ³ÐÀº ¼±À» ±×¸± ¼ö ÀÖ´Ù.
LC_WIDESTYLED ÆøÀÌ ³ÐÀº ½ºÅ¸ÀÏÀÌ ÀÖ´Â ¼±À» ±×¸± ¼ö ÀÖ´Ù.

 

POLYGONALCAPS

ÀåÄ¡ÀÇ ´Ù°¢Çü ±×¸®±â ´É·ÂÀ» Á¶»çÇÑ´Ù.

°ª ¼³¸í

PC_NONE

´Ù°¢ÇüÀ» ±×¸± ¼ö ¾ø´Ù.

PC_INTERIORS ³»ºÎ¸¦ ä»öÇÒ ¼ö ÀÖ´Ù.
PC_POLYGON alternate ä¿ì±â ¸ðµå·Î ´Ù°¢ÇüÀ» ±×¸± ¼ö ÀÖ´Ù.
PC_RECTANGLE »ç°¢ÇüÀ» ±×¸± ¼ö ÀÖ´Ù.
PC_SCANLINE single scanlineÀ» ±×¸± ¼ö ÀÖ´Ù.
PC_STYLED ½ºÅ¸ÀÏÀÌ ÀÖ´Â °æ°è¼±À» ±×¸± ¼ö ÀÖ´Ù.
PC_WIDE ÆøÀÌ ³ÐÀº °æ°è¼±À» ±×¸± ¼ö ÀÖ´Ù.
PC_WIDESTYLED ÆøÀÌ ³ÐÀº ½ºÅ¸ÀÏÀÌ ÀÖ´Â °æ°è¼±À» ±×¸± ¼ö ÀÖ´Ù.
PC_WINDPOLYGON winding ä¿ì±â ¸ðµå·Î ´Ù°¢ÇüÀ» ±×¸± ¼ö ÀÖ´Ù.

 

TEXTCAPS

ÀåÄ¡ÀÇ ÅؽºÆ® Ãâ·Â ´É·ÂÀ» Á¶»çÇÑ´Ù.

°ª ¼³¸í

TC_OP_CHARACTER

Ãâ·Â Á¤È®µµ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

TC_OP_STROKE ½ºÆ®·Ï Ãâ·Â Á¤È®µµ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
TC_CP_STROKE ½ºÆ®·Ï Ŭ¸³ Á¤È®µµ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
TC_CR_90 90µµ ȸÀüµÈ ¹®ÀÚ¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
TC_CR_ANY ÀÓÀÇ °¢µµ·Î ȸÀüµÈ ¹®ÀÚ¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
TC_SF_X_YINDEP x,y°¢ ¹æÇâ µ¶¸³ÀûÀ¸·Î È®´ëÇÒ ¼ö ÀÖ´Ù.
TC_SA_DOUBLE µÎ¹è È®´ëµÈ ¹®ÀÚ¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
TC_SA_INTEGER Á¤¼ö¹è È®´ëÇÒ ¼ö ÀÖ´Ù.
TC_SA_CONTIN Device uses any multiples for exact character scaling.
TC_EA_DOUBLE µÎ¹è µÎ²²ÀÇ ¹®ÀÚ¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
TC_IA_ABLE ÀÌÅŸ¯ °¡´É
TC_UA_ABLE ¹ØÁÙ °¡´É
TC_SO_ABLE Ãë¼Ò¼± °¡´É
TC_RA_ABLE ·¡½ºÅÍ ÆùÆ®¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
TC_VA_ABLE º¤ÅÍ ÆùÆ®¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.
TC_RESERVED ¿¹¾à
TC_SCROLLBLT ºñÆ®¸Ê º¹»ç ¹æ½ÄÀÇ ½ºÅ©·ÑÀ» ÇÒ ¼ö ÀÖ´Ù.

 

COLORMGMTCAPS

2000À̻󿡼­¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ÀåÄ¡ÀÇ »ö»ó °ü¸® ´É·ÂÀ» Á¶»çÇÑ´Ù.

°ª ¼³¸í

CM_CMYK_COLOR

CMYK »ö»óÀ» ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Ù.

CM_DEVICE_ICM

ÀåÄ¡³ª ¶Ç´Â µå¶óÀ̹ö¿¡¼­ ICMÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù.

CM_GAMMA_RAMP

Get(Set)DeviceGammaRamp ÇÔ¼ö¸¦ Áö¿øÇÑ´Ù.

CM_NONE

IDMÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.

 

 

¸®ÅÏ

Á¶»çµÈ °ªÀ» ¸®ÅÏÇÑ´Ù. ÀÌ °ªÀ» Çؼ®ÇÏ´Â ¹æ½ÄÀº ¾î¶² °ªÀ» Á¶»çÇߴ°¡¿¡ µû¶ó ´Þ¶óÁø´Ù.

¼³¸í

DC°¡ ÂüÁ¶ÇÏ´Â ÀåÄ¡ÀÇ ¿©·¯ °¡Áö ¼Ó¼ºÀ̳ª ´É·ÂÀ» Á¶»çÇÑ´Ù. ÀÌ °ªµéÀº ÀåÄ¡¿¡ ´ëÇØ ±×¸®±â³ª ±âŸ °¢Á¾ ¼³Á¤ º¯°æ µî¿¡ Âü°í Á¤º¸·Î »ç¿ëµÈ´Ù. ¿¹¸¦ µé¾î Ç÷ÎÅÍ´Â º¤ÅÍÀÇ Á÷¼±À̳ª °î¼±À» ±×¸± ¼ö´Â ÀÖÁö¸¸ ºñÆ®¸ÊÀº Ãâ·ÂÇÒ ¼ö ¾øÀ¸¸ç Èæ¹é ÇÁ¸°ÅÍ´Â »ö»óÀ» Ç¥ÇöÇÏÁö ¸øÇÑ´Ù. ÀÌ·± ÀåÄ¡ÀÇ Æ¯¼ºÀ̳ª ´É·ÂÀ» ÀÌ ÇÔ¼ö·Î ¹Ýµå½Ã ¸ÕÀú Á¶»çÇÑ ÈÄ °¡´ÉÇÑ ±â´ÉÀÏ ¶§¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù.

ÀÌ ÇÔ¼ö·Î Á¶»çÇÒ ¼ö ÀÖ´Â °ªÀÇ Á¾·ù°¡ ¸¹°í Àǹ̰¡ ¾î·Á¿î °Íµµ ÀÖÀ¸¹Ç·Î Á¤È®ÇÏ°Ô Àǹ̸¦ ÆľÇÇÑ ÈÄ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ ÇÔ¼ö·Î Á¶»çÇÑ °ªÀ» ºÎÀûÀýÇÏ°Ô »ç¿ëÇÒ °æ¿ì ¾û¶×ÇÑ µ¿ÀÛÀ» ÇÒ ¼öµµ ÀÖ´Ù. ´Ù¸¥ ¹æ½ÄÀ¸·Î´Â Á¶»çÇϱâ Èûµç Á¤º¸¸¦ ÀÇ¿Ü·Î ½±°Ô ±¸ÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î ÀÌ ÇÔ¼öÀÇ À妽ºµéÀº Çѹø¾¿ ´«¿©°Ü ºÁµÎ´Â °ÍÀÌ ÁÁ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â È­¸é Å©±â¸¦ Á¶»çÇÑ ÈÄ Æø°ú ³ôÀÌ°¡ È­¸éÀÇ Àý¹Ý Å©±âÀÎ À©µµ¿ì¸¦ »ý¼ºÇÑ´Ù. GetDeviceCaps ÇÔ¼ö·Î È­¸é Å©±â¸¦ ½Ç½Ã°£À¸·Î Á¶»çÇؾ߸¸ Á¤È®ÇÏ°Ô Àý¹Ý Å©±âÀÇ À©µµ¿ì¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. È­¸é Å©±â´Â ÀÌ ÇÔ¼ö ¿Ü¿¡µµ GetSystemMetrics ÇÔ¼ö·Îµµ Á¶»çÇÒ ¼ö ÀÖ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	int x,y;
	LPCTSTR Mes=TEXT("È­¸é Å©±âÀÇ Àý¹Ý¸¸Å­ÀÇ À©µµ¿ì¸¦ »ý¼ºÇÕ´Ï´Ù");

	switch(iMessage) {
	case WM_CREATE:
		hdc=GetDC(NULL);
		x=GetDeviceCaps(hdc,HORZRES);
		y=GetDeviceCaps(hdc,VERTRES);
		MoveWindow(hWnd,0,0,x/2,y/2,TRUE);
		ReleaseDC(hWnd,hdc);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

¿¹Á¦ 2

´ÙÀ½ ¿¹Á¦ ÇöÀç È­¸é DCÀÇ ¿©·¯ °¡Áö ´É·ÂÀ» Á¶»çÇؼ­ Ãâ·ÂÇØ ÁØ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	TCHAR str[128];
	int y=0;

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		if (GetDeviceCaps(hdc,RASTERCAPS) & RC_BITBLT) {
			lstrcpy(str,TEXT("ºñÆ®¸ÊÀ» Ãâ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù."));
		} else {
			lstrcpy(str,TEXT("ºñÆ®¸ÊÀ» Ãâ·ÂÇÒ ¼ö ¾ø½À´Ï´Ù."));
		}
		TextOut(hdc,10,y,str,lstrlen(str));y+=20;

		if (GetDeviceCaps(hdc,RASTERCAPS) & RC_PALETTE) {
			lstrcpy(str,TEXT("ÆÈ·¹Æ®°¡ ÀÖ½À´Ï´Ù."));
		} else {
			lstrcpy(str,TEXT("ÆÈ·¹Æ®°¡ ¾ø½À´Ï´Ù."));
		}
		TextOut(hdc,10,y,str,lstrlen(str));y+=20;

		if (GetDeviceCaps(hdc,CURVECAPS) & CC_ELLIPSES) {
			lstrcpy(str,TEXT("Ÿ¿øÀ» ±×¸± ¼ö ÀÖ½À´Ï´Ù."));
		} else {
			lstrcpy(str,TEXT("Ÿ¿øÀ» ±×¸± ¼ö ¾ø½À´Ï´Ù."));
		}
		TextOut(hdc,10,y,str,lstrlen(str));y+=20;

		if (GetDeviceCaps(hdc,LINECAPS) & LC_POLYLINE) {
			lstrcpy(str,TEXT("´Ù°¢¼±À» ±×¸± ¼ö ÀÖ½À´Ï´Ù."));
		} else {
			lstrcpy(str,TEXT("´Ù°¢¼±À» ±×¸± ¼ö ¾ø½À´Ï´Ù."));
		}
		TextOut(hdc,10,y,str,lstrlen(str));y+=20;

		if (GetDeviceCaps(hdc,TEXTCAPS) & TC_CR_ANY) {
			lstrcpy(str,TEXT("ÅؽºÆ®¸¦ ÀÓÀÇ °¢µµ·Î ȸÀüÇÒ ¼ö ÀÖ½À´Ï´Ù."));
		} else {
			lstrcpy(str,TEXT("ÅؽºÆ®¸¦ ÀÓÀÇ °¢µµ·Î ȸÀüÇÒ ¼ö ¾ø½À´Ï´Ù."));
		}
		TextOut(hdc,10,y,str,lstrlen(str));y+=20;

		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

¿¹Á¦ 3

´ÙÀ½ ¿¹Á¦´Â Draw¶ó´Â ÇÔ¼ö Çϳª·Î È­¸é°ú ÇÁ¸°ÅÍ·Î µ¿½Ã¿¡ Ãâ·ÂÀ» º¸³½´Ù. À©µµ¿ìÁîÀÇ DC´Â È­¸é°ú ÇÁ¸°Å͸¦ µ¿ÁúÀÇ ÀåÄ¡·Î Ãë±ÞÇϵµ·Ï Çϱ⠶§¹®¿¡ DC¸¸ ¹Ù²ã °¡¸ç µ¿ÀÏÇÑ ÇÔ¼ö·Î °°Àº Ãâ·ÂÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¸¸¾à È­¸é°ú ÇÁ¸°ÅÍÀÇ Ãâ·Â ¸ð¾çÀÌ ´Þ¶óÁ®¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¸é Àü´ÞµÈ DC·ÎºÎÅÍ ÇöÀç Ãâ·ÂÀÌ È­¸éÀ¸·Î ³ª°¡´ÂÁö ÇÁ¸°ÅÍ·Î ³ª°¡´ÂÁö¸¦ Á¶»çÇÒ ¼ö ÀÖ´Ù. GetDeviceCaps·Î TECHNOLOGY¸¦ Á¶»çÇÏ¿© ÇöÀç DC¿¡ ´ëÇÑ ÀåÄ¡ÀÇ Á¾·ù¸¦ ÆǺ°ÇÑ´Ù.

void Draw(HDC hdc)
{
	TCHAR str[128];

	if (GetDeviceCaps(hdc,TECHNOLOGY) == DT_RASDISPLAY) {
		lstrcpy(str,TEXT("ÀÌ ¹®ÀÚ¿­Àº È­¸éÀ¸·Î Ãâ·ÂµË´Ï´Ù"));
	} else {
		lstrcpy(str,TEXT("ÀÌ ¹®ÀÚ¿­Àº ÇÁ¸°ÅÍ·Î ÀμâµË´Ï´Ù"));
	}
	TextOut(hdc,10,10,str,lstrlen(str));
}

void Print()
{
	HDC hPrtdc;
	DOCINFO doc;
	int Result;
	PRINTDLG pd;

	// ÇÁ¸°ÅÍ¿¡ °üÇÑ Á¤º¸¸¦ ±¸ÇÏ°í DC¸¦ ¸¸µç´Ù.
	memset(&pd,0,sizeof(PRINTDLG));
	pd.lStructSize=sizeof(PRINTDLG);
	pd.Flags=PD_RETURNDC;
	pd.hwndOwner=hWndMain;
	pd.nFromPage=1;
	pd.nToPage=1;
	pd.nMinPage=1;
	pd.nMaxPage=1;
	pd.nCopies=1;
	PrintDlg(&pd);
	hPrtdc=pd.hDC;
	if (hPrtdc == NULL) return;

	// Àμâ ÀÛ¾÷À» ½ÃÀÛÇÑ´Ù.
	doc.cbSize=sizeof(DOCINFO);
	doc.lpszDocName="Test Document";
	doc.lpszOutput=NULL;
	doc.lpszDatatype=NULL;
	doc.fwType=0;
	Result=StartDoc(hPrtdc, &doc);
	if (Result <= 0) goto end;
	Result=StartPage(hPrtdc);
	if (Result <= 0) goto end;

	// Ãâ·ÂÀ» º¸³½´Ù.
	Draw(hPrtdc);

	// Ãâ·ÂÀ» Á¾·áÇÑ´Ù.
	Result=EndPage(hPrtdc);
	if (Result <= 0) goto end;

	// Àμâ ÀÛ¾÷À» ³¡³½´Ù.
	Result=EndDoc(hPrtdc);
	if (Result <= 0) goto end;

end:
	if (pd.hDevMode)
		GlobalFree(pd.hDevMode);
	if (pd.hDevNames)
		GlobalFree(pd.hDevNames);
	DeleteDC(hPrtdc);
	return;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	LPCTSTR Mes=TEXT("¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é ¹®ÀÚ¿­À» ÀμâÇÕ´Ï´Ù");

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		Print();
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		Draw(hdc);
		TextOut(hdc,10,30,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

È­¸é»óÀÇ Ãâ·Â ¸ð¾çÀº ´ÙÀ½°ú °°´Ù.

±×·¯³ª ¿ÞÂÊ ¸¶¿ì½º ¹öÆ°À» ´­·¯ Àμ⸦ ÇØ º¸¸é ´Ù¸¥ ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù. È­¸é°ú ÇÁ¸°ÅÍ°ú ¿ÏÀüÈ÷ µ¿ÀÏÇÑ À§ÁöÀ¨À̶ó¸é ÀÌ·± 󸮰¡ ºÒÇÊ¿äÇÏ°ÚÁö¸¸ ¹èÄ¡°¡ Á¶±Ý ´Ù¸£´Ù°Å³ª ÆäÀÌÁö ³Ñ±è ó¸® µîÀÌ ÇÊ¿äÇÏ´Ù¸é ÀÌ·± ½ÄÀ¸·Î ÀåÄ¡¸¦ ±¸ºÐÇÒ ¼ö ÀÖ´Ù.

Âü°íÇÔ¼ö

DeviceCapabilities

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

29ÀåÀÇ Àμ⠰ü·Ã ¿¹Á¦¸¦ º¸¸é ÇÁ¸°ÅÍÀÇ ÇØ»óµµ¿Í ¿ëÁö Å©±â µîÀ» ±¸Çϱâ À§ÇØ ÀÌ ÇÔ¼ö°¡ ÀÚÁÖ »ç¿ëµÈ´Ù.


written by http://www.winapi.co.kr