¿øÇü |
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
|