Programming/API 썸네일형 리스트형 keybd_event() keybd_event()는 키보드 메시지를 생성해주는 함수.필요로 하는 헤더와 함수 원형은 다음과 같다.#includeVOID WINAPI keybd_event( _In_ BYTE bVk, // 가상 키코드 _In_ BYTE bScan, // 하드웨어 스캔 코드 _In_ DWORD dwFlags, // 동작 지정 Flag _In_ ULONG_PTR dwExtraInfo // 추가 정보 );bVk - 사용방법은 가상 키코드 같은경우에는 다음 msdn 페이지에서 모두 잘 알려주고 있다.Virtual-key code - http://msdn.microsoft.com/ko-kr/library/windows/desktop/dd375731(v=vs.85).aspxdwFlags - 0을 넣을 경우 keydown, 0.. 더보기 _beginthreadex함수 #include uintptr_t _beginthreadex(void *security, unsigned stack_size, unsigned (*start_address)(void*), void *arglist, unsigned initflag, unsigned *thraddr); 인 자설 명 1 void *security쓰레드의 보안관련정보 전달(필요없으면 NULL) 2unsigned stack_size스택의 크기전달(기본 크기 1MB로 설정하려면 0) 3unsigned (* start_address)(void*)쓰레드 시작함수 주소 전달 4void *arglist함수호출시 전달하고 싶은 인자 5unsigned initflag쓰레드의 생성 이후의 행동을 결정. 0을 전달하면 생성과 동시에 실행된다 6.. 더보기 스레드 생성 함수 API에서 사용되어지는 스레드를 생성하는 함수는1. CreateThread() 2. _beginthread()3. _beginthreadex()3가지이다. CreateThread()WinAPI 전용 함수로 return값으로 HANDLE 타입을 반환한다. 순수하게 스레드를 생성하는 기능만 담당한다.CreateThread함수가 WinAPI 전용 함수이기에 c,c++런타임 라이브러리 함수를 이용할 경우에 c,c++함수는 실행하지 않고 스레드가 죽어버린다.WinAPI함수만 호출 할 때에는 상관이 없지만 c,c++ 같은 형태의 함수를 사용할 수 없기에 스레드 생성시 CreateThread()함수를 권장하지 않는다고 한다.종료시는 먼저 CloseHandle()을 이용해 핸들을 닫고 ExitThread()를 통해 종.. 더보기 그리기 모드 윈도우즈에서 사용되는 디폴트 그리기 모드는 새로 그려진 그림이 기존 그림을 덮는 R2_COPY 모드이다.그리기 모드를 변경하기 위해서는 다음 함수가 쓰인다. int SetROP2( HDC hdc, int fnDrawMode );첫번째 인자 hdc에는 그리기 모드를 변경할 DC의 핸들을 넣어주고 SetROP2 함수의 두번째 인자 fnDrawMode에는 그리기 모드 값을 넣어준다. 그리기 모드설명 R2_BLACK항상 검정색이다. R2_WHITE항상 흰색이다. R2_NOP아무런 그리기도 하지 않는다. R2_NOT원래의 그림을 반전시킨다. R2_COPYPEN원래의 그림을 덮어버리고 새 그림을 그린다. R2_NOTCOPYPEN새 그림을 반전시켜 그린다. R2_MERGEPENOR연산으로 두 그림을 합친다. R2_M.. 더보기 펜과 브러시 펜선을 그릴 때 사용되는 GDI 오브젝트이다. 펜을 변경하여 여러 모양으로 선을 그릴 수 있다.윈도우즈에서 제공하는 스톡 펜은 흰색, 검정색, 투명색 뿐이다. 다른 색의 펜을 사용 하고 싶다면 직접 만들어서 사용하여야 한다.HPEN CreatePen(int fnPenStyle, int nWidth, COLORREF crColor);첫번째 인자 fnPenStyle은 선의 모양을 나타내는 것으로 이 값을 이용하여 다양한 모양의 선을 만들수 있다. PS_SOLIDPS_DASHPS_DOTPS_DASHDOTPS_DASHDOTDOT 두번째 인자 nWidth는 선의 폭을 정한다. 기본 선의 굵기는 1이고 변경하여 두꺼운 선을 그릴 수 있다.세번째 인자 crColor는 선의 색상을 정해준다. COLORREF형으로 RG.. 더보기 GDI 오브젝트 GDI 오브젝트 그래픽 출력에 사용되는 도구를 말하며, 펜, 브러시, 비트맵, 폰트 등 GDI 오브젝트이다. 사용자는 그래픽을 출력하기 전에 DC에 원하는 오브젝트를 선택하여 그래픽을 다른 모양으로 변경 할 수 있다. GDI 오브젝트핸들 타입디폴트 펜HPEN검정색의 가는 선 브러시HBRUSH흰색 폰트HFONT시스템 글꼴 비트맵HBITMAP 팔레트HPALETTE 영역HRGN 스톡 오브젝트 윈도우즈가 기본적으로 제공해 주는 GDI 오브젝트이다. 운영체제에서 기본적으로 제공하다보니 사용하고 제거 할 필요가 없다. HGDIOBJ GetStockObject( int fnObject ); 이 함수를 이용하여 핸들을 얻어서 사용 하는데 fnObject 부분에 스톡 오브젝트를 입력해주면된다. fnObject설명 BLA.. 더보기 리소스 윈도우즈 프로그래밍에서는 비트맵, 아이콘, 메뉴, 문자열 등 프로그램 코드와는 무관한 리소스라는 것이 있다.별도의 편집기로 만들어 컴파일 할때 실행파일에 결합된다.도스와는 달리 윈도우즈 프로그래밍의 리소스와 코드의 분리는 디자이너와 프로그래머의 작업 분담이 편해지고 리소스를 수정 할때에도 코드와 분리되어 있으니 수정, 교체에도 편하고 만들어 놓은 리소스를 다른 프로그램을 만들때에도 사용할 수 있는 장점을 갖고 있다. 메뉴를 비주얼스튜디오를 통하여 생성한 경우에 메뉴를 적용하기 위해서는 #include "resource.h"를 위에 입력해주고 WndClass.lpszMenuName=NULL;이라고 되어있는부분을 WndClass.lpszMenuName=MAKEINTRESOURCE(메뉴노드의 ID);로 변경해.. 더보기 WM_SIZE 메시지와 WM_MOVE 메시지 WM_SIZE 메시지는 윈도우의 크기가 변경 되었을 경우에 사용되는 메시지이다. SIZE_MAXHIDE 다른 윈도우가 최대화되어 윈도우가 가려진 경우SIZE_MAXSHOW 다른 윈도우의 크기가 원래대로 되어서 윈도우가 다시 보이는 경우SIZE_MAXIMIZED 윈도우가 최대화 된 경우SIZE_MINIMIZED 윈도우가 최소화 된 경우SIZE_RESTORED 윈도우의 크기가 변경 된 경우 다음과 같은 플레그들이 있지만 주로 사용되지는 않고,크기가 변경 된경우에 InvalidateRect함수를 이용하여 윈도우를 다시 그리는 쪽으로 사용된다. 윈도우 크기가 변경되어도 일정한 레이아웃을 유지할때 쓰여진다. WM_MOVE 메시지는 이름에서도 알 수 있 듯이 윈도우가 이동 되었을 경우에 사용되는 메시지이다.주로 잘.. 더보기 타이머 키보드나 마우스처럼 사용자들이 입력하는 메시지도 있고 사용자의 입력과는 상관없이 발생하는 메시지도 있다. 바로 타이머 메시지 WM_TIMER이다. 타이머 메시지는 일정 시간간격으로 발생 하도록 할 수 있어 주기적으로 반복해야하는 경우 사용된다. 타이머는 SetTimer 함수를 이용하여 타이머를 생성하고, KillTimer 함수를 이용하여 타이머를 제거 한다. UNIT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc)SetTimer 함수의 원형은 다음과 같다.첫번째 인자 hWnd는 타이머 메시지를 받을 윈도우로 WndProc에서 인자로 받은 hWnd를 그대로 사용 하면된다.두번째 인자 nIDEvent는 타이머의 번호를 지정하는 .. 더보기 tchar 매핑테이블 출처 : http://herakles.egloos.com/tag/tchar/page/1Generic-Text Routine MappingsGeneric-text routine nameSBCS (_UNICODE & MBCS not defined)_MBCS defined_UNICODE defined_cgetts_cgets_cgets_cgetws_cgetts_s_cgets_s_cgets_s_cgetws_s_cputts_cputs_cputs_cputws_fgettcfgetcfgetcfgetwc_fgettchar_fgetchar_fgetchar_fgetwchar_fgettsfgetsfgetsfgetws_fputtcfputcfputcfputwc_fputtchar_fputchar_fputchar_fputwchar_f.. 더보기 이전 1 2 다음