본문 바로가기
C/C++/API

API기본 함수

by 꿀꿀이냐옹이 2009. 7. 27.
반응형
//DC 얻는 방법

HDC GetDC(HWND hWnd);   // 생성

int ReleaseDC(HWND hWnd,HDC hDC);  //해제

 

// 윈도우 생성

HWND CreateWindow(lpszClassName, lpszWindowName, dwStyle, x, y, nWidth, nHeight, hwndParent, hmenu, hinst, lpvParam)    // 윈도우 생성

BOOL ShowWindow(hWnd, nShowCmd)  // 윈도우 화면에 출력

------------------------------------------------------------------------

SW_HIDE                    윈도우를 숨긴다.

SW_MINIMIZE             윈도우를 최소화하고 활성화 시키지 않는다.

SW_RESTORE             윈도우를 활성화 시킨다.

SW_SHOW                  윈도우를 활성화하여 보여준다.

SW_SHOWNORMAL     평범한 스탈일로 윈도우를 활성화하여 보여준다.

------------------------------------------------------------------------

//그래픽

COLORREF SetPixel(hdc, nXPos, nYPos, clrref); // 점찍기

DWORD MoveToEx(hdc,x,y,lpPoint); //점 포인트 이동

BOOL LineTo(hdc, xEnd, yEnd);  // 선긋기

BOOL Rectangle(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect); // 사각형 그리기

BOOL Ellipse(hdc,nLeftRect, nTopRect, nRightRect, nBottomRect); // 원그리기

 

HGDIOBJ GetStockObject(int fnObject); //  스톡오브젝트 지정

HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj);  // 선택된 오브젝트 값 리턴

BOOL DeleteObject(HGDIOBJ hObject); // 오브젝트 해제

HPEN CreatePen(int fnPenStyle, int nWidth, COLORREF crColor);  // 펜 지정

HBRUSH CreateSolidBrush(COLORREF crColor); // 단색 브러쉬

HBRUSH CreateHatchBrush(int fnStyle, COLOREF clrref);  //색상 무늬 지정 가능 브러쉬

 

// 더블 버퍼링

HDC CreateCompatibleDC(HDC hdc);    // 메모리 DC생성

HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName);    // 비트맵 불러오기

BOOL BitBlt(HDC hdcDest, int nXDest, int nYdest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop);   // DC간의 영역끼리 고속 복사

 값  설명
 BLACKNESS  대상영역을 검정색으로 채운다
 DSTINVERT  화면을 반전
 MERGECOPY  소스 비트맵과 대상 화면은 AND 연산
 MERGEPAINT  소스 비트맵과 대상 화면을 OR 연산
 SRCCOPY  소스 영역을 대상 화면에 복사
 WHITENESS  대상 영역을 흰색으로 채운다.

BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);  // DC영역끼리 확대 및 축소 복사 가능

 

// 그리기 모드

int SetROP2(HDC hdc, int fnDrawMode);   // 그리기 모드 변경

 그리기 모드  설명
 R2_BLACK  항상 검정색
 R2_WHITE  항상 흰색
 R2_NOP  아무런 그리기도 하지 않는다.
 R2_NOT  원래의 그림을 반전
 R2_COPYPEN  원래의 그림을 덮고 새그림 그림
 R2_NOTCOPYPEN  새 그림을 반전
 R2_NOTXORPEN  XOR한 결과의 반대값을 써 넣음
 R2_MERGEPEN  OR연산으로 두 그림을 합친다.
 R2_MASKPEN  AND연산으로 겹치는 부분만 그린다.
 R2_XORPEN  XOR연산으로 겹치는 부분만 반전

int GetROP2(HDC hdc);  // 그리기 모드 조사

 

// 텍스트

BOOL TextOut(HDC hdc,int nXStart,int nYStart, LPCTSTR lpString, int cvString);  // 문자 출력

int DrawText(HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UINT uFormat); // 문자 출력

 값  설명
 DT_LEFT  수평 왼쪽 정렬
 DT_RIGHT  수평 오른쪽 정렬
 DT_CENTER  수평 중앙 정렬
 DT_BOTTOM  사각영역 바닥에 출력
 DT_VCENTER  사각영역 수직 중아에 출력
 DT_WORDBREAK  사각영역 오른쪽 끝에서 자동 개행
 DT_SINGLELINE  한줄로 출력
 DT_NOCLIP  사각영역 경계 벗어나도 그대로 출력

UINT SetTextAlign(HDC hdc, UINT fMode);  // 문자열 정렬

 값  설명 
 TA_TOP  상단
 TA_BOTTOM  하단
 TA_CENTER  중앙
 TA_LEFT  왼쪽
 TA_RIGHT  오른쪽
 TA_UPDATECP  CP를 사용하여 문자열 출력 후에 CP변경
 TA_NOUPDATECP  CP사용 안함, CP변경 안함

 

// 메시지

int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UNIT uType);  // 메시지 박스

BOOL MessageBeep(UINT uType);  // 메시지 비프

LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); // 강제 메시지전달

 

// 무효영역

BOOL InvalidateRect(HWND hWnd, CONST RECT*lpRect, BOOl bErase); TRUE 이면 무효화

 

// 타이머

UINT SetTimer(HWND hWnd, UINT nlDEvent, UINT uElapse, TIMERPROC lpTimerFunc); //타이머 설정

BOOL KillTimer(HWND hWnd, IINT ulDEvent); // 타이머 해제

 

// 작업영역

BOOL GetClientRect(HWND hWnd, LPRECT lpRect);  // 작업영역 크기 조사

 

// 폰트
HFONT CreateFont(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, DWORD fdwItalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD fdwCharSet, DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, DWORD fdwPitchAndFamily, LPCTSTR lpszFace);    // 폰트 생성

HFONT CreateFontlndirect(CONST LOGFONT *lplf);  // 조금더 간단한 폰트 생성

 

COLORREF SetTextColor(HDC hdc, COLORREF crColor);   // 글꼴 색 설정

GetTextColor  // 글꼴 설정 얻어오기

COLORREF SetBkColor(HDC hdc, COLORREF crColor);    //  글 뒤쪽 배경색

GetBkColor    // 글꼴 배경색 얻어오기

int SetBkMode(HDC hdc, int iBkMode)  // OPAQUE : 불투명한 배경,  TRANSPARENT : 투명한 배경 사용

 

//  버튼 만들기 : WM_CREATE

CreateWindow(TEXT("button"),TEXT("Click Me"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20,20,100,25,hWnd(부모될 윈도우),(HMENU)0(ID번호),g_hInst(메인인스턴스),NULL);

---------------------------------------------------------

스타일                             설명

BS_PUSHBUTTON            푸시 버튼

BS_DEFPUSHBUTTON       디폴트 푸시 버튼

BS_CHECKBOX               체크박스

BS_3STATE                   3가지 상태를 가지는 체크 박스

BS_AUTOCHECKBOX        자동 체크 박스

BS_AUTO3STATE            3가지 상태를 가지는 자동 체크 박스

BS_RADIOBUTTON          라디오 버튼

BS_AUTORADIOBUTTON   자동 라디오 버튼

BS_GROUPBOX              그룹 박스

---------------------------------------------------------

부모와의 통신

 인수  설명 
 HIWORD(wParam)  통지 코드
 LOWORD(wParam)  컨트롤의 ID
 lParam  메시지를 보낸 차일드 윈도우의 윈도우 핸들

 

체크박스

BM_GETCHECK : 체크 박스가 현재 체크되어 있는 상태인지를 조사하며 wParam,lParam은 사용하지 않는다. 체크 상태는 리턴값으로 반환

BM_SETCHECK : 체크 박스의 체크 상태를 변경하며 wParam에 변경할 체크 상태를 지정

 상수  값  의미
 BST_UNCHECKED  0  현재 체크되어 있지 않다.
 BST_CHECKED  1  현재 체크되어 있다.
 BST_INDETERMINATE  2  체크도 아니고 안 체크도 아닌 상태

 

라디오 버튼

BOOL CheckRadioButton(HWND hDlg, int nIDFirst, int nIDLast, int nIDCheck); // 처음 선택될 라디오 버튼 지정

 

//  컨트롤과의 통신

HWND GetDlgItem(HWND hDlg, int nIDDlgItem);  // 해당 콘트롤 ID에 따른 윈도우 핸들구하기

int GetDlgCtrlID(HWND hwndCtl);  // 핸들에 대한 ID값 구하기

LONG SendDlgItemMessage(HWND hDlg, int nID, UINT Msg, WPARAM wParam, LPARAM lParam);

// 핸들을 구한후 메시지 보내기 SendMessage(GetDlgItem(hDlg,ID)...... 를 간단히 표현

 

UINT GetDlgItemText(HWND hDlg, int nID, LPTSTR lpString, int nMaxCount);

// 컨트롤의 문자열 값 얻어오기

BOOL SetDlgItemText(HWND hDlg, int nID, LPCTSTR lpString);

// 컨트롤에 문자 지정하기

UINT GetDlgItemInt(HWND hDlg, int nID,BOOL *lpTranslated, BOOL bSigned);

// 컨트롤의 정수 값 얻어오기

BOOL SetDlgItemInt(HWND hDlg, int nID, UINT uValue, BOOL bSigned);

// 컨트롤에 정수값 지정하기

 

BOOL CheckDlgButton(HWND hDlg, int nIDButton, UINT uCheck);

// 체크박스 및 라디오 버튼 상태  지정하기

UINT IsDlgButtonChecked(HWND hDlg, int nIDButton);

CheckDlgButton(hDlg,IDC_BOLD,bBold ? BST_CHECKED:BST_UNCHECKED);

// 체크박스 및 라디오 버튼 상태 얻어오기

bBold = (IsDlgButtonChecked(hDlg,IDC_BOLD)==BST_CHECKED);

[출처] API 기본함수|작성자 이형호


반응형

'C/C++ > API' 카테고리의 다른 글

2009.07.27 API KEY입력  (0) 2009.07.27
2009.07.27 API도형그리기  (0) 2009.07.27
2009.07.24 API 수업  (0) 2009.07.24
2009.07.23 API 수업  (0) 2009.07.23
WINAPI  (0) 2009.07.22

댓글