폰트 업,젝트외에 출력되는 문자열에 영향을 주는 여러 가지 함수가 있다. 오늘은
COLORREF SetTextColor(HDC hdc,COLORREF crColor); //텍스트의 색을 지정
COLORREF SetBkColor(HDC hdc,COLORREF crColor); //텍스트의 배경을 지정
int SetBkMode(HDC hdc, int iBkMode); //배경색상을 사용할 방법을 설정.
보통 Set 함수가 있으면 Get함수가 있는법.
GetTextColor
GetBkColor
함수도 있다. 기능은 set의 반대이다.
iBkMode 인자의 값은
OPAQUE | 배경의 색상에 따라 뒷쪽의 그림이 사라진다. |
TRANSPARENT | 투명한 배경을 사용한다 그래서 문자를 출력한 후에도 배경은 투명이다 |
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam){
HDC hdc;
PAINTSTRUCT ps;
HFONT hFont,saveFont;
HBRUSH hBrush,saveBrush;
TCHAR *str=TEXT("GFP입니다.");
static LOGFONT lFont;
switch(iMessage){
case WM_CREATE:
lFont.lfHeight=50;
lFont.lfWidth=0;
lFont.lfEscapement=0;
lFont.lfOrientation=0;
lFont.lfWeight=0;
lFont.lfItalic=0;
lFont.lfUnderline=0;
lFont.lfStrikeOut=0;
lFont.lfCharSet=HANGEUL_CHARSET;
lFont.lfOutPrecision=0;
lFont.lfClipPrecision=0;
lFont.lfQuality=0;
lFont.lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
lstrcpy(lFont.lfFaceName,TEXT("궁서"));
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
hBrush=CreateHatchBrush(HS_CROSS,RGB(0,0,255));
saveBrush=(HBRUSH)SelectObject(hdc,hBrush);
Rectangle(hdc,10,10,500,200);
SelectObject(hdc,saveBrush);
hFont=CreateFontIndirect(&lFont);
saveFont=(HFONT)SelectObject(hdc,hFont);
SetTextColor(hdc,RGB(255,0,0));
SetBkColor(hdc,RGB(255,255,0));
TextOut(hdc,20,20,str,lstrlen(str));
SetBkMode(hdc,TRANSPARENT);
TextOut(hdc,120,120,str,lstrlen(str));
DeleteObject(SelectObject(hdc,saveFont));
DeleteObject(SelectObject(hdc,saveBrush));
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return (DefWindowProc(hWnd,iMessage,wParam,lParam));
}
결과는.. 다음과 같다.
'Computer > Win API' 카테고리의 다른 글
소켓 통신 관련해서 ..... (0) | 2013.12.13 |
---|---|
WinApi 컨트롤 (0) | 2010.07.23 |
WinApi 그래픽[폰트] (0) | 2010.07.22 |
WinApi 그래픽 [비트맵 bitmap] (0) | 2010.07.22 |
WinApi RopMode2 [확장] (0) | 2010.07.22 |