본문 바로가기
반응형

분류 전체보기2980

20151116 김태현 WinAPI 3일차 CALLBACK함수,메뉴 만들기 1.CALLBACK 함수 콜백함수 소프트웨어 인터럽트라 생각하면 된다.정확도를 요구하는 작업은 WM_TIMER 메시지보다는 CALLBACK 함수를 사용하는게 좋다. 콜백 함수를 사용하여 화면의 임의 위치에 지속적으로 점을 찍는 프로그램을 만들어 보자. void CALLBACK TimerProc(HWND hWnd, UINT uMesg, UINT idEvent, DWORD dwTime) { HDC hdc; int i; hdc = GetDC(hWnd); //0.1초에 300개씩 화면에 랜덤한 색의 점을 찍는다. for (i = 0; i 화면 중간에 글자를 찍고 화면의 크기를 조정해도 글자가 중앙에 찍히는 프로그램을 짜보자. LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessag.. 2015. 11. 16.
20151116 윤재희 #3. 입력 ==================================Outline==================================== 입력- Mouse- 타이머- SendMessage- 두 개의 타이머- 콜백 함수- 작업 영역- WM_SIZE---------------------------------------------------------------------------- Mouse 마우스의 동작은 아래와 같이 9개로 분류된다.버튼누름놓음더블클릭좌측WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDBLCLK우측WM_RBUTTONDOWNWM_RBUTTONUPWM_RBUTTONDBLCLK중앙WM_MBUTTONDOWNWM_MBUTTONUPWM_MBUTTONDBLCLK마우스의 자표는 '.. 2015. 11. 16.
2015.11.16_개인업무일지_[Win32API #3]_이량경 ✔ ================================================================✔ 4-1-라. TranslateMessage- GetMessage는 메시지 큐에서 메시지를 꺼내온후 이 메시지를 함수 TransleateMessage()로 넘겨준다. - WM_KEYDOWN이 전달되려면 TransleateMessage()함수와DispatchMessage()함수까지 통과되어야 한다. - DispatchMessage()함수에 의해 wndProc에 전달 되므로 * TranslateMessage 함수를 빼 버리면 WM_CHAR 메시지는 절대로 WndProc으로 전달되지 않을 것이다. ---------------------------------------------------LR.. 2015. 11. 16.
20151116 강동조 개인업무일지API 3일차 DispatchMessage 함수에 의해 wndProc으로 보내진다트랜스를 빼면 WM_CHAR를 발생하지 않는다마우스는 wParam과 lParam이 있다 마우스가 눌러진 것에 의해 정보가 오는데 그정보는 좌표이다x와y좌표는 Lparam으로 들어가게 된다 바탕화면 기준이 아닌 우리 창안에서의 기준이다컨트롤키가 눌러져있는 상태에서 wParam이 들어가게 된다 if문안으로 들어갈시 실행화면CASE MOUSEMOVE는 누르던 떄던 발생한다 그렇기에 if문으로 조건을 걸어 두었다 if문안으로 들어가지 않을떄 실행화면 좌표값 출력 실행화면 시간 출력 사각형만큼 무효화 영역지정을 할 수 있습니다 사각형을 그려줄려면 WM_PAINT안에서 Rectangle(hdc,X,Y,X,Y)를 정해 주면 사각형이 생기겠습니다 초당 .. 2015. 11. 16.
20151116 - 홍준모 Win32API - 3일차 4-1-라. TranslateMessage 키보드에서 A키를 눌렀다 뗐다고 해 보자. 이 때 발생하는 메시지는 순서대로 WM_KEYDOWN, WM_CHAR, WM_KEYUP 세가지이다. 이 중 WM_CHAR 메시지는 사용자에 의해 발생하는 메시지가 아니다. 키보드로부터 전달되는 메시지는 키를 누를 때 WM_KEYDOWN, 키를 뗄 때 WM_KEYUP 두가지뿐이다. 그럼 WM_CHAR 메시지는 어디서 발생할까? 이 메시지는 WM_KEYDOWN에 의해 추가로 발생하는 메시지이며 메시지 루프에서 인위적으로 생성된다. Key 프로젝트를 연 후 메시지 루프를 다시 보자.while(GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); DispatchMessage(&.. 2015. 11. 16.
20151116_박서연_일일업무일지_API(3) 2015-11-16*WinAPI (3) #TranslateMessage while(GetMessage(&Message,0,0,0)) {TranslateMessage(&Message);DispatchMessage(&Message);}GetMessage는 메세지 큐에서 메세지를 꺼내온 후 이 메세지를 TranslateMessage함수로 넘겨준다.TanslateMessage함수는 전달된 메세지가 WM_KEYDOWN인지와 눌려진 키가 문자키인지 검사해 보고 조건이 맞을 경우 WM_CHAR 메세지를 만들어 메세지 큐에 덧붙이는 역할을 한다.물론 문자 입력이 아닐 경우는 아무 일도 하지 않으며 이 메세지는 DispatchMessage함수에 의해 WndProc으로 보내진다. 만약 메세지 루프에서 TranslateMe.. 2015. 11. 16.
20151116 업무일지 -여지윤- 1~8교시★S/W☆ ● Win32 API □ Translate Message - GetMessage는 메시지 큐에서 메시지를 꺼내온 후 이 메시지를 TranslateMessage 함수로 넘겨 준다. - TranslateMessage 함수는 전달된 메시지가 WM_KEYDOWN인지와 눌려진 키가 문자키인지 검사해 보고 조건이 맞을 경우 WM_CHAR 메시지를 만들어 메시지 큐에 덧붙이는 역할을 한다. - 물론 문자 입력이 아닐 경우는 아무 일도 하지 않으며 이 메시지는 DispatchMessage 함수에 의해 WndProc으로 보내진다. - 만약 메시지 루프에서 TranslateMessage 함수를 빼 버리면 WM_CHAR 메시지는 절대로 WndProc으로 전달되지 않을 것이다. 과연 그런지 Key예제에서 .. 2015. 11. 16.
20151116-주재민-win32API_3일차 lsprintf 유니코드 지원한다. #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hInst; LPSTR lpszClass = (LPSTR)TEXT("TextOut"); 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)GetS.. 2015. 11. 16.
2015-11-16 Win32 API 개인업무일지 - 천정호 Translate MessageWindows의 메세지 전송과정은 원형큐의 형식으로 동작이 되며 Windows가 보낸 메세지가 너무 많아서 Application이 모두 처리하지 못하는 경우에는 가장 최근의 메시지를 우선적으로 받는다.원형 큐의 메세지를 받는 부분은 아래의 while()문 코드이며 while()문의 조건에 있는 GetMessage 함수로 메세지를 받아 처리 한다.GetMessage 함수는 메세지 큐에서 메세지를 꺼내온 후 TranslateMessage 함수로 전달되는데 TranslateMessage 함수는 전달된 메세지가 WM_KEYDOWN과 같은 메세지인지 먼저 검사를 하고 WM_KEYDOWN과 같은 메세지면 눌려진 키가 문자키인지를 wParam을 통하여 검사를 한다. TranslateMe.. 2015. 11. 16.
728x90
반응형