| ¿øÇü |
int GetDeviceCaps(HDC hdc, int nIndex); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MFC ¿øÇü |
int CDC::GetDeviceCaps( int nIndex ) const; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Àμö |
¢ºhdc : DCÀÇ ÇÚµé ¢ºnIndex : Á¶»çÇϰíÀÚ ÇÏ´Â DCÀÇ ¼Ó¼ºÀÌ¸ç ´ÙÀ½ Áß ÇϳªÀÇ °ªÀ» ÁöÁ¤ÇØ ÁØ´Ù.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ¸®ÅÏ |
Á¶»çµÈ °ªÀ» ¸®ÅÏÇÑ´Ù. ÀÌ °ªÀ» ÇØ¼®ÇÏ´Â ¹æ½ÄÀº ¾î¶² °ªÀ» Á¶»çÇߴ°¡¿¡ µû¶ó ´Þ¶óÁø´Ù. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ¼³¸í |
DC°¡ ÂüÁ¶ÇÏ´Â ÀåÄ¡ÀÇ ¿©·¯ °¡Áö ¼Ó¼ºÀ̳ª ´É·ÂÀ» Á¶»çÇÑ´Ù. ÀÌ °ªµéÀº ÀåÄ¡¿¡ ´ëÇØ ±×¸®±â³ª ±âŸ °¢Á¾ ¼³Á¤ º¯°æ µî¿¡ Âü°í Á¤º¸·Î »ç¿ëµÈ´Ù. ¿¹¸¦ µé¾î Ç÷ÎÅÍ´Â º¤ÅÍÀÇ Á÷¼±À̳ª °î¼±À» ±×¸± ¼ö´Â ÀÖÁö¸¸ ºñÆ®¸ÊÀº Ãâ·ÂÇÒ ¼ö ¾øÀ¸¸ç Èæ¹é ÇÁ¸°ÅÍ´Â »ö»óÀ» Ç¥ÇöÇÏÁö ¸øÇÑ´Ù. ÀÌ·± ÀåÄ¡ÀÇ Æ¯¼ºÀ̳ª ´É·ÂÀ» ÀÌ ÇÔ¼ö·Î ¹Ýµå½Ã ¸ÕÀú Á¶»çÇÑ ÈÄ °¡´ÉÇÑ ±â´ÉÀÏ ¶§¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ ÇÔ¼ö·Î Á¶»çÇÒ ¼ö ÀÖ´Â °ªÀÇ Á¾·ù°¡ ¸¹°í Àǹ̰¡ ¾î·Á¿î °Íµµ ÀÖÀ¸¹Ç·Î Á¤È®ÇÏ°Ô Àǹ̸¦ ÆÄ¾ÇÇÑ ÈÄ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ ÇÔ¼ö·Î Á¶»çÇÑ °ªÀ» ºÎÀûÀýÇÏ°Ô »ç¿ëÇÒ °æ¿ì ¾û¶×ÇÑ µ¿ÀÛÀ» ÇÒ ¼öµµ ÀÖ´Ù. ´Ù¸¥ ¹æ½ÄÀ¸·Î´Â Á¶»çÇϱâ Èûµç Á¤º¸¸¦ ÀǿܷΠ½±°Ô ±¸ÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î ÀÌ ÇÔ¼öÀÇ À妽ºµéÀº Çѹø¾¿ ´«¿©°Ü ºÁµÎ´Â °ÍÀÌ ÁÁ´Ù. ´ÙÀ½ ¿¹Á¦´Â ȸé Å©±â¸¦ Á¶»çÇÑ ÈÄ Æø°ú ³ôÀ̰¡ ȸéÀÇ Àý¹Ý Å©±âÀÎ À©µµ¿ì¸¦ »ý¼ºÇÑ´Ù. 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));
}
´ÙÀ½ ¿¹Á¦ ÇöÀç ȸé 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));
}
´ÙÀ½ ¿¹Á¦´Â 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
|