본문 바로가기

분류 전체보기

[MFC(Visual C++)] 다이얼로그 타이틀(border) 및 프레임 없애기 ModifyStyle(WS_CAPTION, 0); 을 하면 된다. #define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */ ModifyStyle(0, WS_CAPTION); 을 하면 다시 보인다. 더보기
[MFC(Visual C++)] 다이얼로그 최상위(맨앞) 및 활성화하기 HWND hWndActive= ::GetForegroundWindow();// 다이얼로그 최상위로 올리고 활성화 시키기if(this->m_hWnd != hWndActive && hWndActive != NULL){DWORD dwThreadPID;DWORD dwCurrentThreadID; dwThreadPID= GetWindowThreadProcessId(hWndActive, NULL);dwCurrentThreadID= GetCurrentThreadId(); if(dwThreadPID != dwCurrentThreadID){if(AttachThreadInput(dwCurrentThreadID, dwThreadPID, TRUE)){BringWindowToTop();AttachThreadInput(dwCur.. 더보기
[MFC(Visual C++)] 다이얼로그 투명화 HWND hWnd= m_pChildDlg->GetSafeHwnd();::SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);m_pChildDlg->SetLayeredWindowAttributes(0, 60, LWA_ALPHA); 위의 '60'을 조절하면 투명도를 조정할 수 있다. 더보기
[MFC(Visual C++)] 자식 다이얼로그 최상위로 생성하기 // 자식 다이얼로그를 생성한다. (최상위로)m_pChildDlg= new CCapturedScreen();m_pChildDlg->Create(IDD_DLG_SCREEN, GetDesktopWindow());m_pChildDlg->SetWindowPos(&CWnd::wndTopMost, 0, 0, 1920, 1080, SWP_NOMOVE|SWP_SHOWWINDOW); CCapturedScreen은 자식 다이얼로그의 이름 위와 같이하면, 자식 다이얼로그를 생성하여 맨 앞에 둘 수 있다. 더보기
[MFC(Visual C++)] 바탕화면의 해상도 얻어오기 // CWindowDC 형식으로 DC를 얻어온다.HDC hScrDC= ::GetDC(NULL); // 현재 스크린의 해상도를 얻어온다.int nWidth= ::GetDeviceCaps(hScrDC, HORZRES);int nHeight= ::GetDeviceCaps(hScrDC, VERTRES); 더보기
[MFC(Visual C++)] 다이얼로그 기반 OnDraw 호출하기 다이얼로그 기반 환경에서는 기본적으로 OnPaint 함수만 존재한다. OnDraw 함수는 OnPaint 함수에서 호출하는 식으로 구성되어 있다. 보통 OnPaint는 화면 출력을 위한 함수이고, OnDraw는 화면 출력 및 프린터에도 관여하는 함수이다. 1. 헤더파일에 OnDraw 함수 선언 2. OnPaint 함수에서 OnDraw 호출 3. OnDraw 함수의 내용 구현 더보기
MFC(Visual C++) 엔터 및 백스페이스 종료 방지 1. PreTranslateMessage 함수 재정의 2. 아래와 같이 내용 삽입 더보기
CHAPTER16 - C++의 형변환 연산자 1. C++에서의 형 변환 연산 C언어의 형 변환 연산자는 강력하기 때문에, 아래 예제에서 보이는 실수를 해도 컴파일러는 이를 잡아내지 못한다. class car { private: int fuelgauge; public: car(const int fuel) : fuelgauge(fuel) {} void showcarstate(void) const { cout 기초 클래스로 형 변환 뿐만 아니라, 기초 -> 유도 클래스로 형 변환이 가능하다. 하지만 그에 대한 책임은 프로그래머가 져야 한다. 따라서, static_cast는 dynamic_cast 연산자와 달리, 보다 많은 형 변환을 허용한다. 그러나 dynamic_cast를 사용할 수 있는 경우에는 해당 연산자를 사용하여 안정성을 높여야 한다. 또한, .. 더보기
방정식과 부등식 - 7 1. 부등식의 성질 1.1 부등식의 기본 성질 (1) a > b이고 b c이다. (2) a > b이고 a ± c > b ± c이다. (3) a > b이고 c > 0이면 ac > bc이다. (4) a > b이고 c b의 해 (1) 부등식의 양변을 상수 .. 더보기
CHAPTER15 - 예외처리(Exception Handling) 1. 예외상황과 예외처리의 이해 예외처리에서의 '예외'는 프로그램 실행 도중에 발생하는 '예외적인 상황'을 의미한다. 그리고 C++은 이러한 예외적인 상황의 처리를 위한 문법을 별도로 제공하고 있다. 1.1 예외상황을 처리하지 않았을 때의 결과 C++에서 말하는 '예외(exception)'는 프로그램의 실행 도중에 발생하는 문제상황을 의미한다. 따라서 컴파일 시 발생하는 문법적인 에러는 예외의 범주에 포함되지 않는다. 몇 가지 상황을 예로 들면 다음과 같다. (1) 나이를 입력하라고 했는데, 0보다 작은 값이 입력되었다. (2) 나눗셈을 위한 두 개의 정수를 입력 받는데, 제수(나누는 수)로 0이 입력되었다. (3) 주민등록번호 13자리만 입력하라고 했더니, 중간에 -를 포함하여 14자리를 입력하였다. .. 더보기