본문 바로가기

API

색깔 지정 소스코드(win32 api) #include #include #define ATTR(b,f) ( (((b) 더보기
[윈도우api] HIWORD #define HIWORD(I) ((WORD)(((DWORD)(I) >> 16) & 0xFFFF)) 상위 16비트를 얻어냄 WORD = 16비트 DWORD = 32비트 I가 0001 0010 0011 0100이라고 가정 1. (DWORD)(I) >> 16 오른쪽으로 16비트를 이동 자료값 범위를 벗어난 0011 0100은 삭제 결과 = 0000 0000 0001 0010 2. 1번의 결과값 & 0xFFFF 결과 = 0000 0000 0001 0010 3. (WORD)2번의 결과값 32비트에서 16비트로 축소시 앞의 16비트를 날려버림 뒤의 16비트만 남음 결과 = 0001 0010 (상위 16비트) 더보기
Timer(윈도우 api)소스 #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass = TEXT("MyTimer"); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_hInst = hInstance; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); .. 더보기
DrawText(윈도우 api)소스 #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass=TEXT("st"); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_hInst=hInstance; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); WndClass.hCurso.. 더보기
[윈도우 api]윈도우 api 기본구조 윈도우 api 기본 구조 인스턴스 핸들 = 코드 영역의 메모리주소 윈도우(os)는 리소스(메뉴, 브러시, 윈도우 창 등)를 관리하기 위해서 커널 오브젝트를 생성, 커널 오브젝트안에는 리소스에 대한 정보가 들어 있고 이 커널 오브젝트에 특정한 핸들(주소 값)을 부여함, 그리고 실행되는 프로그램에 윈도우(os)가 이 부여된 핸들을 전달 받은 핸들(주소 값)을 통해서 커널 오브젝트에 접근이 가능하고 여러가지 기능을 수행 할 수 있음 콜백함수(윈도우 프로시저)와 윈도우 및 윈도우에 대한 메세지와의 관계 무슨 변화가 생기면 이 변화에 대한 메세지가 어느 윈도우로 보낼 것인지 잘 생각해봐야 함 윈도우 프로시저는 윈도우 클래스당 하나씩 배정되며 메시지에 대응하는 방식을 정의함으로써 윈도우의 행동 양식을 결정 한 클래.. 더보기