본문 바로가기

윈도우 api

together 채팅프로그램 더보기
윈도우즈 api 정복 예제 소스 더보기
[윈도우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비트) 더보기
[윈도우 api] 입력 키보드 입력 키보드 입력이 발생하는 시점과 문자열을 출력해야 할 시점이 분리되어 있음 문자열을 계속 모아 두었다가 필요할 때 출력을 WM_PAINT에서 처리함 무효영역 : 윈도우의 일부분이 가려졌다가 나타나거나 최소화되었다가 복구시 무효영역이 발생 그때마다 운영체제가 WM_PAINT메세지를 발생시킴 강제로 윈도우의 작업영역을 무효화 BOOL InvalidateRect(HWND hWnd, CONST RECT *lpRect, BOOL bErase); 1. hWnd 무효화의 대상이 되는 윈도우 나타냄 2. *lpRect 무효화할 사각영역을 지정 이 값이 NULL이면 윈도우의 전 영역이 무효화 화면이 깜빡거리지 않고 보기 좋게 하기위해서는 무효화할 사각영역을 정확하게 지정할 것 3.bErase 무효화되기 전에 .. 더보기
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)가 이 부여된 핸들을 전달 받은 핸들(주소 값)을 통해서 커널 오브젝트에 접근이 가능하고 여러가지 기능을 수행 할 수 있음 콜백함수(윈도우 프로시저)와 윈도우 및 윈도우에 대한 메세지와의 관계 무슨 변화가 생기면 이 변화에 대한 메세지가 어느 윈도우로 보낼 것인지 잘 생각해봐야 함 윈도우 프로시저는 윈도우 클래스당 하나씩 배정되며 메시지에 대응하는 방식을 정의함으로써 윈도우의 행동 양식을 결정 한 클래.. 더보기