본문 바로가기

공부/MFC

그림판 따라하기 진행중 마우스 커서를 바꾸어주는 메시지 핸들러 함수 의 코드 내용 BOOL CPaintView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { HCURSOR hCursor ; switch(m_nDogu)//클릭된 도구에 따라 커서의 모양을 바꾸어 지정함. { case DPEN : hCursor = AfxGetApp()->LoadCursor(IDC_PEN) ; break ; case DLINE : hCursor = AfxGetApp()->LoadCursor(IDC_CROSS) ; break ; case DELLIPSE : hCursor = AfxGetApp()->LoadCursor(IDC_CROSS) ; break ; case DRECT : hCursor = A.. 더보기
커서 제작. 핫 스폿 1. 리소스 뷰 로 간다. 2. 우클릭 -> 추가 -> 리소스 3. 커서 클릭 후 가져오기 or 새로만들기 4. 커서를 그린다. 5. 커서의 Hot spot 을 정한다. 기본적으로 비활성화 되어있기때문에 조정을 할 수 없나.. 라고 생각하기 쉽다. 위의 그리기 도구모움에서 우측 끝에서 2번째인 아이콘을 누르면 핫스폿을 설정할 수 있다. 핫스폿을 핫스폿 설정도구를 통해 변경하면 해당 아이콘의 핫 스폿 값이 바뀐다. 핫스폿은 아이콘이 가리키는 위치 를 말한다. 더보기
Visual C++ 2008 MFC Chapter 10 메뉴~ - 4 지금까지 사용한 메뉴 코드는 내부적으로 TrackPopupMenu()함수를 가지고 만들어진 것이라고 한다. 이 함수의 원형은 다음과 같다. BOOL TrackPopupMenu(UINT nFlags, //메뉴 윈도우의 위치, 에니메이션효과 등 동작특성을 결정 int x, int y, //출력할 좌표 **반드시 스크린 기준 CWnd* pWnd, // WM_COMMAND 메시지를 전송할 윈도우 객체의 주소. LPCRECT lpRect = NULL //이값은 현재 사용하지않음. ); 다음으로는 속성값들을 정리한 내용이다 TPM_CENTERALIGN 지정한 위치의 중앙에 오게한다. TPM_LEFTALIGN 지정한 위치의 좌측에 정렬 TPM_RIGHTALIGN 지정한 위치의 오른쪽에 정렬 TPM_BOTTOMALIG.. 더보기
Visual C++ 2008 MFC Chapter 10 메뉴~ -3 다른 메뉴를 만들듯이 일시 정지 메뉴를 만들고 일시정지 메뉴를 만들기 전에 구분선을 하나 넣어본다.[생성시에 메뉴에 다 한글로 써있으니 설명이 필요치 않다.] m_bRunning 을 넣었듯이 m_bPause 도 넣어준다. 역시 마찬가지로 시작 종료 메뉴를 만든것처럼 void CMainFrame::OnMenuPause()와 void CMainFrame::OnUpdateMenuPause(CCmdUI *pCmdUI) 를 추가하고 다음과 같이 입력한다. ========================================================== void CMainFrame::OnMenuPause() { if(m_bPause)AfxMessageBox(_T("다시 시작합니다.")); elseAfxMes.. 더보기
Visual C++ 2008 MFC Chapter 10 메뉴~ -2 아까의 코드에서 헤더파일 public 부분에 BOOL m_bRunning; 으로 플래그를 추가해주고 cpp에 가서 =================================================== CMainFrame::CMainFrame() { // TODO: 여기에 멤버 초기화 코드를 추가합니다. m_bRunning = FALSE; //초기화 } =================================================== 처럼 추가수정을 하여 초기화를 해준뒤 =================================================== void CMainFrame::OnMenuStart() { m_bRunning = TRUE;//실행 중이라는 의미로 플래그를 T.. 더보기