본문 바로가기

컴퓨터

[MFC Dialog] PreTranslateMessage 특정 컨트롤러나 Dialog에 이벤트를 주고 싶다. 하면 그냥 이벤트 등록하면 간단한 일이다. 하지만 특정 부분에 대해서, 세세하게 이벤트를 달아주고 싶다면, 이 방법을 써보자.PreTranslateMessageMSDN -Override this function to filter window messages before they are dispatched to the Windows functions TranslateMessage and DispatchMessage The default implementation performs accelerator-key translation, so you must call the CWinApp::PreTranslateMessage member function in yo.. 더보기
[MFC Dialog] OnKeyDown message 1 afx_msg void OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags ); nChar Specifies the virtual key code of the given key. For a list of of standard virtual key codes, see Winuser.h nRepCnt Repeat count (the number of times the keystroke is repeated as a result of the user holding down the key). nFlags Specifies the scan code, key-transition code, previous key state, and context code, as shown in.. 더보기
[VC++] MFC 기본 요점 정리 1. DC얻기 CClientDC dc(this); 2. Client 영역 구하기 GetClientRect(&rect); WM_SIZE 메시지발생후 cx,cy 사용 3. 문자열 사각형안에 그리기 pDC->DrawText(문자열,사각형,Style); Style: DT_BOTTOM - 문자열을 사각형 맨아래줄에배열 반드시 DT_SINGLELINE과 함께사용 DT_CENTER - 문자열을 가로중앙에 배치 DT_VCENTER - 문자열을 세로중앙에 배치 DT_LEFT,RIGHT - 문자열을 좌,우로 배치 DT_SINGLELINE - 문자열을 한줄로만 쓴다 4. Brush 사용법 CBrush brushname(RGB(red,green,blue)); //브러쉬 생성 CBrush *oldBrush=pDC->Select.. 더보기
[VC++] SetTimer()함수, KillTimer()함수 1. SetTimer 함수는 일정시간 마다 WM_TIMER 메시지를 발생시킨다. 2. WM_TIMER 메시지가 발생하면 OnTimer 함수를 호출한다. SetTimer(0,1000,NULL); //SetTimer함수는 아래와 같다. //SetTimer(타이머번호, 설정된 시간간격, 타이머 메시지가 발생되었을때 실행되는 함수 // 설정된 시간이 '1000' 이면 1초 간격을 뜻한다. SetTimer(1,800,NULL); void Test::OnTimer(UINT nIDEvent) { if ( nIDEvent == 0 ) { // ID가 0인 타이머 } if ( nIDEvent ==1 ) { // ID가 1인 타이머 } } 이런식으로 하면 여러개의 타이머를 서로 다른 시간에 작동 시킬수 있다. 한가지더.... 더보기
MFC Timer (SetTimer,OnTimer,KillTimer,ON_WM_TIMER) 일정 시간 뒤에 원하는 업무를 처리하기 사용합니다. 비슷한 기능으로 Sleep( millisecond ) 를 입력하는데요. Sleep을 이용할 경우 해당 쓰레드 전체가 멈추어 버리고 그 멈춤에 따라 외부 인터럽트입력(키보드, 마우스, 등등)이 주어지게 되면 버퍼에 쌓였다가 한번에 처리되는 일이 발생하게 되버립니다. 그래서 그걸 방지하기 위해 Timer를 사용하는데 사용방법은 다음과 같습니다. -등록 BEGIN_MESSAGE_MAP(CGroupChatWindow, CDialog) ... ON_WM_TIMER() ... END_MESSAGE_MAP() 메세지 맵에 'ON_WM_TIMER()'를 등록 -타이머 시작 SetTimer(1394,1000,NULL); 파라매터 1) Timer의 ID값 2) SetTi.. 더보기
[MFC] WM_CLOSE, WM_DESTROY, WM_QUIT의 차이점 [MFC] WM_CLOSE, WM_DESTROY, WM_QUIT의 차이점 WM_CLOSE 윈도우가 닫히기 전에 이 메시지가 전달되며 메인 윈도우인 경우는 응용 프로그램이 종료된다는 신호이다. 이 메시지를 처리하지 않고 DefWindowProc으로 보내면 DestroyWindow 함수를 호출하여 윈도우를 파괴하도록 한다. 이 메시지가 전달되었을 때는 아직 윈도우가 파괴된 것이 아니므로 윈도우가 파괴되는 것을 중간에 차단할 수 있다. 미저장 파일이 있거나 프로그램을 종료할 상황이 되지 않을 때 사용자에게 메시지 박스를 통해 종료 사실을 확인시킬 수 있으며 이 메시지를 가로채서 단순히 return하면 DestroyWindow가 호출되지 않도록 할 수 있다. 예를 들어 프로그램을 사용자가 닫을 때 "저장할까요?.. 더보기
HOMM4(히어로즈 오브 마이트앤매직4) 에 대한 리뷰 명가 3DO도 최근에는 그 위상이 예전같지가 않다. 믿었던 레젼드 오브 마이트 앤 매직의 실패, 콘솔로 출시된 자사의 게임들의 잇따른 부진과 아미맨의 시장 포기는 물론 마이트 앤 매직 조차 예전처럼 좋은 반응을 유저들에게 얻고 있지 못하기 때문이다. 최근까지 히어로즈 오브 마이트 앤 매직 3 엔진을 이용하여 다양한 게임을 제작했지만(에라시아의 부활, 아마겟돈 블레이드, 쉐도우 오브 데스, 4종류의 크로니컬 시리즈)이제는 이것도 뜻대로 되지 않았는지 현재는 포기한 상태에 있다. [히어로즈 오브 마이트 앤 매직 1(1995년)] [히어로즈 오브 마이트 앤 매직 2(1996년)] [히어로즈 오브 마이트 앤 매직 3(1999년)] 필자는 히어로즈 마이트 앤 매직 시리즈를 매우 좋아한다. 1995년에 출시댄 1부.. 더보기
HOMM3 (히어로즈오브마이트앤매직 3) 초보자가이드 챕터 1 초보자 종족 선택 Tip 힘세고 강한 종족을 원한다 - 당신에게 어울리는 종족은 스트롱홀드입니다 꾸준한 싸움을 원한다 - 당신에게 어울리는 종족은 캐슬입니다 편하면서도 강한 종족을 원한다 - 당신에게 어울리는 종족은 램파트입니다 전략과 전술을 활용하면서 지혜롭게 싸우고 싶다 - 당신에게 어울리는 종족은 타워입니다 야비하고 치사하게 병력을 꾸역꾸역 모을 수 있다 - 당신에게 어울리는 종족은 네크로폴리스입니다 나는 사기종족 아니면 안한다 - 당신에게 어울리는 종족은 컨플럭스입니다 파괴신을 숭배한다 - 당신에게 어울리는 종족은 인퍼노입니다 애매모호하게 쎈 종족을 원한다 - 당신에게 어울리는 종족은 던전입니다 저레벨유닛이 고레벨유닛을 씹어삼키는걸 보고 싶다 - 당신에게 어울리는 종족은 포트리스입니다 초.. 더보기