본문 바로가기

Programming/Win32&MFC&COM

Visual Studio 2017에서 MFC 개발하기 Visual Studio 2017 설치 이후 MFC 프로젝트가 보이지 않는 경우가 있습니다.이런 경우 개별 구성 요소에서 MFC를 추가해야 합니다.먼저 시작에서 Visual Studio Installer를 검색해서 실행합니다.실행하면 설치된 Visual Studio 2017 버전을 확인할 수 있습니다.수정 버튼을 누르면 설치된 내용을 변경할 수 있습니다.개별 구성 요소로 이동하면 설치된 구성 요소와 설치가 가능한 구성 요소를 확인할 수 있습니다. 하단 부분의 MFC 및 ATL 지원(x86 및 x64)에 체크하고 좌측 하단의 수정 버튼을 누르면 설치가 됩니다.설치가 완료되면 Visual Studio를 실행하고 MFC 프로젝트 생성이 가능합니다.좌측에서 C++의 MFC 옵션을 선택하면 MFC 응용프로그램 생.. 더보기
Visual Studio C++ 프로젝트 빌드 속도 향상 Visual Studio로 C++ 프로젝트를 진행할 때 빌드에 시간이 많이 소요되는 경우가 있습니다.규모가 있는 프로젝트가 잘 정리되지 않은 경우 빈번하게 발생합니다.프로젝트 속성 변경을 통해서 C++ 프로젝트 빌드 속도를 개선하는 방법입니다. 1. 프로젝트 속성(Project Properties) 변경 방법프로젝트 속성은 단축키 Alt + F7로 실행하거나 메뉴의 PROJECT > Project's Properties로 실행 가능합니다.각 프로젝트 속성을 어디에 입력할지 모르는 경우 검색 방법은 다음과 같습니다.좌측의 C/C++과 Linker 등의 하위 메뉴에 All Options라는 메뉴가 존재합니다.상단에 보이는 검색창에 옵션을 입력하면 어디에 입력해야 되는지 표시가 됩니다. 2. 빌드 속도 최적화.. 더보기
MFC에 플래시(Flash) ActiveX 컨트롤 추가하기 최근 웹에서 플래시를 많이 걷어내는 추세입니다.보안 등 여러 문제가 많이 발생하기 때문에 최근에는 잘 사용하지 않는 방향으로 개발을 합니다.그래도 swf 파일 등을 MFC에서 출력하는 상황이 생깁니다.MFC에 Flash 컨트롤을 추가해서 swf 파일을 재생하는 방법입니다.Visual Studio 2015를 기준으로 설명하도록 하겠습니다.먼저 MFC 프로젝트를 생성합니다.간단하게 테스트하기 위해 다이얼로그 기반 프로젝트로 생성합니다. MFC 라이브러리를 static으로 사용하는 것 외에 다른 설정은 변경하지 않았습니다.리소스 뷰(Resource View)의 다이얼로그를 열고 ActiveX 컨트롤을 추가합니다. 다이얼로그 화면에서 마우스 오른쪽 클릭하면 메뉴가 표시됩니다.Insert ActiveX Contr.. 더보기
제어판의 전원 옵션 구현하기 제어판의 전원 옵션 메뉴에는 전원을 관리하기 위한 옵션들을 수정할 수 있습니다.기본적으로 균형 조정, 고성능, 절전의 옵션이 존재합니다. 일부 노트북이나 대기업 PC의 경우 다른 옵션이 있을 수도 있습니다.설정 변경에 들어가면 디스플레이 끄기 시간과 절전 모드로 진입하는 시간을 설정할 수 있습니다.그리고 고급 전원 관리 옵션 설정 변경(C)를 누르면 세부 설정이 가능합니다.이 설정을 직접 가져오고 수정할 수 있는 API가 제공됩니다.Power Management Reference는 아래 링크를 통해서 확인할 수 있습니다.https://msdn.microsoft.com/en-us/library/windows/desktop/aa373170(v=vs.85).aspx실제 값을 가져오기 위한 간단한 코드는 다음과.. 더보기
MFC에서 커스텀 리소스(Custom Resource) 사용 방법 MFC를 활용해서 개발할 경우 Resource View에서 리소스를 확인할 수 있습니다.비트맵이나 아이콘, 다이얼로그, 메뉴 등이 포함되어 있습니다.이런 타입은 MFC 자체에서 지원하는 리소스 형식입니다.지원하는 타입이 아닌 다른 타입의 리소스를 추가해서 사용하기 위해서는 커스텀 리소스를 사용해야 합니다.바이너리나 텍스트 파일 등을 추가해서 가져오는 것이 가능합니다.간단하게 텍스트 파일을 리소스에 추가하고 가져오는 방법입니다.먼저 Resource View로 이동해서 새로운 리소스를 추가합니다.프로젝트명.rc라고 되어 있는 부분에 마우스 오른쪽 클릭을 하면 Add resource 메뉴를 선택합니다.리소스를 추가할 수 있는 다이얼로그가 표시됩니다. 오른쪽에 있는 Import... 버튼을 클릭합니다.파일 선택.. 더보기
MFC에서 엔터(Enter), ESC 입력시 종료되는 문제 해결 방법 MFC에서 프로그램을 개발할 때 엔터나 ESC를 누를 경우 프로그램이 종료되는 문제가 존재합니다.개발을 MFC로 진행하면 누구나 한 번쯤은 경험하게 됩니다.이 문제를 해결하기 위해 다음과 같은 방법으로 처리하면 됩니다.1. PreTranslateMessage() 메소드 재정의(Override)다이얼로그 베이스의 프로젝트를 생성하면 해당 프로젝트명Dlg.cpp와 .h파일이 생성됩니다.해당 클래스의 PreTranslateMessage() 메소드를 오버라이딩하는 방법입니다.이 메소드는 메시지가 처리되기 전에 호출이 되는 함수입니다.여기서 키보드의 엔터와 ESC 메시지를 거르게 하면 됩니다.먼저 Class Wizard를 실행(Ctrl + Shift + X)합니다.Class name에는 Dlg가 뒤에 붙은 클래스.. 더보기
IDesktopWallpaper를 활용한 윈도우 배경화면 변경하기 윈도우8에 IDesktopWallpaper 인터페이스가 추가되었습니다. 이 인터페이스를 활용하면 바탕화면의 배경화면을 변경할 수 있습니다. MSDN에서 다음과 같이 확인할 수 있습니다. https://msdn.microsoft.com/en-us/library/windows/desktop/hh706946(v=vs.85).aspx 메소드의 이름이 직관적이기 때문에 기능을 쉽게 알 수 있습니다. 배경화면의 색을 지정하거나 이미지, 슬라이드쇼의 설정이 가능합니다. 또한 화면의 해상도를 가져올 수도 있습니다. #include #include #include #include int main() { ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); CComPtr pWall.. 더보기
Visual Studio 2012 Update 1 다운로드(XP 호환성 문제 해결) Visual Studio 2012에서 작성하는 C++ 프로그램들이 정상적으로 실행이 되지 않는 문제점이 있습니다.Visual Studio 2012에서 작성한 프로그램을 XP에서 실행하면 다음과 같은 오류를 보게 됩니다.MFC 다이얼로그 프로그램이 정상적으로 실행되지 않습니다.이러한 이유로 Visual Studio 2012가 문제가 되었습니다.해당 이슈는 Visual Studio 2012 Update 1를 설치하면 해결됩니다.업데이트는 Visual Studio의 Tools 메뉴의 Extensions and Updates를 설치하면 됩니다.현재는 업데이트가 많이 진행되었기 때문에 최신 업데이트를 설치하면 됩니다.기존의 C++ 프로젝트의 속성을 확인하면 다음을 확인할 수 있습니다.업데이트를 받아서 설치하면 X.. 더보기