본문 바로가기
코스웨어/15년 스마트컨트롤러

20151118_안향진_API_5

by 알 수 없는 사용자 2015. 11. 19.
728x90
반응형

<API>

=6-5-가. CreateFont




1.

  HDC hdc;
  PAINTSTRUCT ps;
  HFONT font;
  HFONT oldfont;
  WCHAR str[]= L"폰트 Test 1234";
  switch(iMessage) 
  {
    case WM_PAINT:
      hdc=BeginPaint(hWnd, &ps);
      font=CreateFont(50,0,0,0,0,0,0,0,HANGEUL_CHARSET,0,0,0,0,"궁서");
      oldfont=(HFONT)SelectObject(hdc,font);
      TextOut(hdc, 100,100,str,lstrlen(str));
      SelectObject(hdc,oldfont);
      DeleteObject(font);
      EndPaint(hWnd, &ps);
      return 0;


2.

typedef struct tagLOGFONT { // lf    
  LONG lfHeight;    
  LONG lfWidth; 
  LONG lfEscapement;    
  LONG lfOrientation;
    LONG lfWeight; 
  BYTE lfItalic;
    BYTE lfUnderline;
    BYTE lfStrikeOut;
    BYTE lfCharSet; 
  BYTE lfOutPrecision;
    BYTE lfClipPrecision;
    BYTE lfQuality; 
  BYTE lfPitchAndFamily;
    TCHAR lfFaceName[LF_FACESIZE]; 
} LOGFONT;


HFONT CreateFontIndirect( CONST LOGFONT *lplf); 


  HDC hdc;
  PAINTSTRUCT ps;
  HFONT font;
  HFONT oldfont;
  WCHAR str[]= L"폰트 Test 1234";
  LOGFONT lf;
  switch(iMessage) 
  {
    case WM_PAINT:
      hdc=BeginPaint(hWnd, &ps);
      lf.lfHeight = 50;
      lf.lfWidth = 0;
      lf.lfEscapement = 0;
      lf.lfOrientation = 0;
      lf.lfWeight = 0;
      lf.lfItalic = 0;
      lf.lfUnderline = 0;
      lf.lfStrikeOut = 0;
      lf.lfCharSet = HANGEUL_CHARSET;
      lf.lfOutPrecision = 0;
      lf.lfClipPrecision = 0;
      lf.lfQuality = 0;
      lf.lfPitchAndFamily = 0;
      strcpy(lf.lfFaceName, "궁서");
      font = CreateFontIndirect(&lf);

      
      oldfont=(HFONT)SelectObject(hdc,font);
      TextOut(hdc, 100,100,str,lstrlen(str));
      SelectObject(hdc,oldfont);
      DeleteObject(font);
      EndPaint(hWnd, &ps);
      return 0;




=6-5-다. 문자열의 색상



  HDC hdc;
  PAINTSTRUCT ps;
  HFONT font;
  HFONT oldfont;
  WCHAR str[] = L"폰트 Test 1234";
  HBRUSH MyBrush;
  HBRUSH OldBrush;
  switch(iMessage) 
  {
    case WM_PAINT:
      hdc=BeginPaint(hWnd, &ps);
      MyBrush=CreateHatchBrush(HS_CROSS,RGB(0,0,255));
      OldBrush=(HBRUSH)SelectObject(hdc,MyBrush);
      Rectangle(hdc,50,50,400,200);
      SelectObject(hdc,OldBrush);

      font=CreateFont(30,0,0,0,0,0,0,0,HANGEUL_CHARSET,0,0,0,0,"궁서");
      oldfont=(HFONT)SelectObject(hdc,font);
      SetTextColor(hdc,RGB(255,0,0));
      SetBkColor(hdc,RGB(255,255,0));
      TextOut(hdc, 100,100,str,lstrlen(str));
      SetBkMode(hdc,TRANSPARENT);
      TextOut(hdc, 100150,str,lstrlen(str));

      SelectObject(hdc,oldfont);
      DeleteObject(MyBrush);
      DeleteObject(font);
      EndPaint(hWnd, &ps);
      return 0;




=푸시푸시게임

=헤더파일 smart.h

=메시지 맵 방식으로 변경

=main.c smart.c 로 분할

=맵핑기법 => 게임 배경


728x90