1. GetSystemMetrics
- int GetSystemMetrics(int nIndex)
- nIndex에 사용하능 한 값은 SM_으로 시작 하는 상수들이며 100가지가 넘음
- ex1) SM_CXSCREEN : 현재 화면 해상도의 X축 크기를 Pixel 단위로 얻는다.
- ex2) SM_CYSCREEN
2. ShowWindow (Windows.h, Winuser.h)
- BOOL ShowWindow(HWND hwnd, int nCmdShow)
- hnwd에는 핸들값
- nCmdShow에는 윈도우를 어떻게 통제할지
- return 값은 SW_HIDE면 0, 나머지는 0이 아닌 상수
3. GetMessage (Windows.h, Winuser.h)
- BOOL GetMessage(LPMSG lpmsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
- lpmsg는 메세지 받는 msg 구조체 포인터
- hnwd는 메세지 되찾아오는(?) 검색하는(?) 핸들
- wMsgFilterMin : 가장 낮은 메세지 정수값
- wMsgFilterMax : 가장 높은 메시지 정수값
4. TranslateMessage (Windows.h, Winuser.h)
- BOOL TranslageMessage(const MSG *lpmsg)
- 입력된 키 문자열로 변환
5. DispatchMessage (Windows.h, Winuser.h)
- LRESULT DispatchMessage(const MSG * lpmsg)
- 메세지 루프는 이 함수를 통해 메세지들을 해당 메시지가 전달되어야 하는 윈도우의 "윈도우 프로시져"에 전달함으로써 메시지를 전파시킴
6. BeginPaint (Windows.h, Winuser.h)
- HDC BeginPaint (HWND hwnd, LPPAINTSTRUCT lpPaint)
- lpPaint : 그림그리는 정보를 받는 PAINTSTRUCT 포인터
- 성공시 핸들값 반환
7. BITBlt (Windows.h, Winuser.h)
- BOOL BitBlt ( HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop)
- hdcDest : 이미지를 출력할 위치의 핸들
- nXDest, nYDest : 이미지를 출력할 위치인 x,y 좌표
- nWidth, nHeight : 원본 이미지의 너비, 높이 - 이 크기만큼 원본 이미지에서 잘라와 그린다.
- hdcSrc : 이미지의 핸들
- nXSrc, xnYSrc : 가져올 이미지의 시작지점인 x,y 좌표 - 이 위치부터 nWidth, nHeight만큼 이지리를 잘라온다.
- dwRop : 이미지의 출력방법 (ex : SRCCOPY : 원본이 이미지 출력)
8. EndPaint
- BOOL EndPaint ( HWND hWnd, const PAINTSTRUCT *lpPaint)
- hWnd : 다시 그려지는 윈도우에 대한 핸들
- lpPaint : BeginPaint 정보를 되찾는 것을 포함하는 PAINTSTRUCT 포인터
9. MoveToEx (wingdi.h, Windows.h)
- BOOL MoveToEx (HDC hdc, int X, int Y, LPPOINT lpPoint);
- hdc : DC핸들
- X : 새 현재 위치의 X좌표, 논리 좌표
- Y : 새 현재 위치의 Y좌표, 논리 좌표
- lpPoint : 이전 현재 좌표를 돌려받귀 위한 POINT구조체 포인터, 이전 좌표가 필요없으면 NULL을 전달해 준다.
- 성공시 nonzero, 실패시 0 리턴
10 LineTo (wingdi.h, Windows.h)
- BOOL LineTo (HDC hdc, int nXEnd, int nYEnd)
- hdc : DC핸들
- nXEnd : 끝점의 X좌표, 논리 좌표
- nYEnd : 끝점의 Y좌표, 논리 좌표
- 성공시 nonzero, 실패시 0 리턴
9,10번은 세트로 보면 된다.
MoveToEx(hdc, A,B,NULL) - LineTo(hdc, C, D)
(A,B) 지점에서 (C,D)지점까지 선을 그어준다.
11. InvalidateRect (
- BOOL InvalidateRect ( HWND, hWnd, CONST RECT *lpRect, BOOL bErase )
- 윈도우의 일부분을 무효화 시켜주는 함수
- hwnd : 개인되어야 할 영역을 지니고 있는 윈도우의 핸들
- lpRect : 갱신되어야 할 영역의 정보를 담고 잇는 RECT구조체 변수의 포인터
- bErase : 무효화 영역을 갱신시켜줄 시 무효ㅇ화 영역의 Background를 지워야하는 지에 대한 여부를 의미하는 변수
HDC memDC = CreateCompatibleDC ( hDC );
HBITMAP memBM = CreateCompatibleBitmap ( hDC, nWidth, nHeight );
SelectObject ( memDC, memBM );
BOOL Rectangle( HDC hdc, int left, int top, int right, int bottom);
MoveToEx
LineTo
InvalidateRect
MoveToEx
LineTo
InvalidateRect
BeginPaint
BitBlt
EndPaint
'reversing > 개념 및 내용' 카테고리의 다른 글
32bit 파일 실행가능하게 해주는 코드 (0) | 2019.02.28 |
---|---|
코드가상화 (0) | 2019.02.21 |
IA32 processors 어셈블리 명령어모음 (0) | 2019.01.29 |