일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- matlab 영상처리
- 모두의 딥러닝
- TensorFlow
- C언어 공부
- 딥러닝
- 파이토치 김성훈 교수님 강의 정리
- MFC 프로그래밍
- 미디언 필터링
- 파이토치 강의 정리
- 영상처리
- 김성훈 교수님 PyTorch
- 딥러닝 스터디
- 딥러닝 공부
- c언어 정리
- Pytorch Lecture
- c++
- 팀프로젝트
- 컴퓨터 비전
- 모두의 딥러닝 예제
- c++공부
- 가우시안 필터링
- 해리스 코너 검출
- pytorch zero to all
- object detection
- 골빈해커
- 파이토치
- 케라스 정리
- tensorflow 예제
- pytorch
- c언어
- Today
- Total
ComputerVision Jack
[MFC - Chater1 연습 문제] 본문
1. SDK 프로그램을 실행 했을 때, 타이틀 바 내 종료 버튼이 비활성화 되도록 수정하시오.
WNDCLASS에 대해서 style 속성 값을 CS_NOCLOSE로 설정하면 된다.
WNDCLASS wndclass;
wndclass.style = CS_NOCLOSE;
- CS_VREDRAW : 세로의 크기가 변경되면 윈도우를 다시 그린다.
- CS_HREDRAW : 가로의 크기가 변경되면 윈도우를 다시 그린다.
- CS_DBLCLKS : 윈도우 내부 더블 클릭 메세지를 윈도우 프로시저로 보낸다.
- CS_OWNDC : 클래스 내부의 각 윈도우에 고유의 DC가 할당 된다.
- CS_CLASSDE : 클래스 내부의 각 윈도우는 하나의 DC를 공유하게 된다.
- CS_PARENTDC : 부모 윈도우에 사각형을 만들어 자식이 부모 윈도우에 그릴 수 있게 한다.
- CS_NOCLOSE : 윈도우 메뉴의 닫기 버튼 비 활성화
- CS_SAVEBITS : 가려진 스크린의 일부를 비트맵으로 저장한다.
- CS_BYTEALIGNCLIENT : 윈도우의 클라이언트 영역을 바이트 경계에 정렬
- CS_BYTEALIGNWINDOW : 윈도우를 바이트 경계에 정렬한다.
- CS_IME : IME 사용자 인터페이스에 사용할 IME 윈도우로 지정
2. SDK 프로그램 아이콘을 물음표 아이콘으로 변경하시오
WNDCLASS에 대해 hIcon 속성 값을 IDC_QUESTION로 설정하면 된다.
WNDCLASS wndclass;
wndclass.hIcon = LoadIcon(NULL, IDI_QUESTION);
- IDI_ASTERISK : 정보 모양
- IDI_ERROR : 에러 모양
- IDI_EXCLAMATION : 경고 모양
- IDI_QUESTION : 질문 모양
3. SDK 프로그램 마우스 커서를 위쪽 화살표 커서로 변경하시오
WNDCLASS에 대해 hCursor 속성 값을 IDC_ARROW로 설정하면 된다.
WNDCLASS wndclass;
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
- IDC_ARROW : 화살표 모양
- IDC_CROSS : 크로스 모양
- IDC_IBEAM : I 모양
- IDC_NO : X 모양
- IDC_WAIT : 모래시계 모양
4. SDK 프로그램 윈도우 배경이 검은색이 되도록 수정하시오.
WNDCLASS에 대해 hbrBackground 속성 값을 BLACK_BRUSH로 설정하면 된다.
WNDCLASS wndclass;
wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
흰색, 검정색, 회색의 경우 기본 브러시 값만 변경하면 된다.
- RGB 색상으로 지정 : CreateSolidBrush(RGB(10, 20, 30))
- NULL 값으로 지정할 경우는 WM_ERASEBKGND 메시지에서 직접 배경을 설정
6. SDK 프로그램에서 윈도우 스타일이 오버랩된 윈도우 대신 타이틀 바가 있는 팝업 윈도우가 되도록 수정하시오. 단 윈도우 위치는 (0,0) , 크기는 (500, 200)이 되도록 한다.
HWND에 대해 CreateWindow( ) 함수 인자 WS_CAPTION, 0, 0, 500, 200 으로 설정
HWND hwnd;
hwnd = CreateWindow(TEXT("예제"), TEXT("예제"), WS_CAPTION, , 0, 500, 200, NULL, NULL, hInstance, NULL);
- WS_OVERLAPPEDWINDOW : 메뉴, 최대화, 최소화 버튼 등등 포함한 윈도우
- WS_CAPTION : 제목 표시줄 표시
- WS_HSCROLL : 수평 스크롤바 표시
- WS_VSCROLL : 수직 스크롤바 표시
- WS_MAXIMIZEBOX : 최대화 버튼 표시
- WS_MINIMIZEBOX : 최소화 버튼 표시
- WS_SYSMENU : 시스템 메뉴 표시
- WS_THICKFRAME : 크기 조절 프레임 표시
7. SDK 프로그램을 무조건 윈도우 최대화 상태로 실행되도록 수정하시오.
ShowWindow( ) 함수 인자를 SW_MAXIMIZE로 설정
ShowWindow(hwnd, SW_MAXIMIZE);
- SW_HIDE : 윈도우 숨김
- SW_MINIMIZE : 윈도우 최소화
- SW_RESTORE : 윈도우 활성화
- SW_SHOW : 윈도우 표시
- SW_SHOWNORMAL : 윈도우 활성화 후 표시
8. 마우스 왼쪽 버튼을 누르면 다음과 같이 <예> / <아니오> 버튼이 있는 메시지 상자가 나타나도록 하시오
MessageBox( ) 함수 3번째 인자를 MB_YESNO로 설정
MessageBox(hwnd, TEXT("마우스 클릭"), TEXT("마우스 메세지"), MB_YESNO);
- MB_OK : 확인 버튼 생성
- MB_OKCANCEL : 확인 취소 버튼 생성
- MB_RETRYCANCEL : 다시시도 취소 버튼 생성
- MB_YESNO : 예 아니오 버튼 생성
- MB_YESNOCANCEL : 예 아니오 취소 버튼 생성
9. 마우스 왼쪽 버튼을 누르면 금지(X) 아이콘이 있는 메시지 상자가 나타나도록 하시오.
MessageBox( ) 함수 3번째 인자를 MB_ICONSTOP으로 설정
MessageBox(hwnd, TEXT("마우스 클릭"), TEXT("마우스 메세지"), MB_ICONSTOP);
- MB_ICONEXCLAMATION / MB_ICONWARNING : 경고 아이콘
- MB_ICONINFORMATION / MB_ICONASTERISK : 정보 아이콘
- MB_ICONQUESTION : 물음표 아이콘
- MB_ICONSTOP / MB_ICONERROR : 정지 아이콘
10. 마우스 왼쪽 버튼을 누르면 '종료 하시겠습니까?' 메시지가 있는 <확인>/<취소> 버튼이 있는 메시지 상자가 나타나고 확인을 누르면 프로그램을 종료하시오.
MessageBox return 값을 이용하여 프로그램 로직을 처리한다.
if (IDOK == MessageBox(hwnd, TEXT("종료하시겠습니까?"), TEXT("마우스 메세지"), MB_OKCANCEL)){
PostQuitMessage(0);
return 0;
}
- IDCANCEL : 취소 버튼 누른 경우
- IDNO : 아니오 버튼 누른 경우
- IDRETRY : 다시시도 버튼을 누른 경우
- IDOK : 확인 버튼 누른 경우
- IDYES : 예 버튼을 누른 경우
13. 마우스 왼쪽 버튼을 누르면 윈도우가 최대화 되도록 MFC 프로그램을 작성하시오.
ShowWindow( ) 함수 인자를 SW_MAXIMIZE로 설정한다.
void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point){
ShowWindow(SW_MAXIMIZE);
}
10번 문제를 MFC 프로그램으로 작성하시오.
void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point){
if(IDOK == MessageBox(_T("종료하시겠습니까?"), _T("마우스 메세지"), MB_OKCANCEL))
DestroyWindow();
}
'Image Processing > MFC Programming' 카테고리의 다른 글
[MFC - Chater2 연습 문제] (2) | 2020.08.06 |
---|---|
[MFC - MFC 기초 클래스] (0) | 2020.08.05 |
[MFC - 윈도우 프로그래밍 기초] (0) | 2020.08.03 |
[MFC 프로그래밍 - Chapter9] (0) | 2020.02.28 |
[MFC 프로그래밍 - Chapter8] (0) | 2020.02.27 |