Programming 썸네일형 리스트형 쓰레드 쓰레드윈도우 운영체제에서 하나의 프로그램이 실행된 것은 하나의 프로세스가 생성된다는 의미와 같다.운영체제 내부적으로 여러 논리적 코드를 관리하는 단위이다.실행 파일을 실행하게 되면 하나의 프로세스가 생성되고 내부적으로는 하나의 쓰레드가 생성되어 실행되는 것이다.프로세스는 쓰레드 실행의 단위가 된다.쉽게 말해 프로세스를 하나의 집으로 생각한다면 그 집에서 거주하는 사람은 쓰레드인 것이다.그렇다면 왜 쓰레드가 필요 하나면 하나의 쓰레드가 작업을 하는 것 보다 두개의 쓰레드가 같은시간에 더 많은 작업을 할 수 있기 때문이다. 작업자 쓰레드MFC에서 쓰레드를 생성하는 함수는 AfxBeginThread() 함수 이다.이 함수를 이용하면 특정 전역 함수를 별도의 쓰레드로 실행할 수 있다. 만일 여러번 같은 방식으로.. 더보기 CWnd 클래스 CWnd 클래스는 CObject 클래스와 CCmdTarget 클래스를 상속받은 클래스이다.CCmdTarget 클래스는 MFC의 메시지 맵과 관련된 코드가 구현된 클래스로 메시지 맵은 윈드우 프로시저 함수의 switch case문을 대체 하고자 도입된 MFC의 구조이다.CWnd 클래스는 MFC가 제공하는 모든 윈도우 클래스의 기본 기능이 구현된 클래스 이다. MFC가 제공하지 않는 형식의 윈도우를 개발 해야 할 때에도 CWnd 클래스는 기본 클래스가 된다. 초기화 관련 메서드CWnd 클래스는 윈도우를 객체화 한 클래스이다 보니 객체를 선언하고 초기화 하고 생성하면 화면에 윈도우 하나가 만들어진다고 할 수 있다. 함수역할 Create()/CreateEx윈도우를 생성하는 함수. CreateEx()는 추가로 확.. 더보기 그리기 모드 윈도우즈에서 사용되는 디폴트 그리기 모드는 새로 그려진 그림이 기존 그림을 덮는 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.. 더보기 마우스의 입력 윈도즈에서 키보드와 함께 가장 많이 쓰이는 입력장치가 있다. 바로 마우스 인데 키보드 입력에 이어 마우스 입력에 대하여 보도록 하겠다.api명령어를 통하여 우리가 사용하는 평범한 마우스부터, 노트북의 터치패드, 트랙볼, 타블릿 등 마우스의 역할을 하는 모든 것들을 메시지를 통하여 마우스 입력 처리가 가능하다.마우스 입력에 관한 메시지는 다음과 같다. 누름놓음더블클릭좌측WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDBLCLK우측WM_RBUTTONDOWNWM_RBUTTONUPWM_RBUTTONDBLCLK중앙WM_MBUTTONDOWNWM_MBUTTONUPWM_MBUTTONDBLCLK 그리고 마우스 휠에 대한 메시지는 WM_MOUSEWHEEL이 있는데 0~120까지는 휠을 위로 굴리는경우, .. 더보기 이전 1 2 3 다음