mfc 8

[MFC] PropertiesWnd

MFC SDI 프로젝트 생성시 기본으로 제공해주는 Property gird 도킹창 관련 코드 (VS2017 기준) PropertiesWnd.h #pragma once class CPropertiesToolBar : public CMFCToolBar { public: virtual void OnUpdateCmdUI(CFrameWnd* /*pTarget*/, BOOL bDisableIfNoHndler) { CMFCToolBar::OnUpdateCmdUI((CFrameWnd*) GetOwner(), bDisableIfNoHndler); } virtual BOOL AllowShowOnList() const { return FALSE; } }; class CPropertiesWnd : public CDockabl..

[MFC] Modaless Dialog

출처 : http://psmon.x-y.net/maniwiki/doku.php?id=mfc:%EA%B8%B0%EC%B4%88:%EB%AA%A8%EB%8B%AC%EB%A6%AC%EC%8A%A4_%EB%8C%80%ED%99%94%EC%B0%BD mfc:기초:모달리스_대화창 [PSMON WIKI] 모달리스 다이얼로그 와 메모리 리크(Leaks) Cdialog 즉 다이얼로그 창은. 간단하게 메시지를 주고 받을수 있는 가장 간단한 인터페이스부터 미디어 플레이어 같은 매우 복작합 인터페이스까지 쉽게 구현할수 있는 보편적인 인터페이스 입니다. 저두 처음에는 다이얼로그 모드에서 작업을 많이 했죠. 비교적 간단하고, 간편하게 짤수 있으니까요. 그러나 저러나, 다이얼로그는 모달과 모달리스가 있고, 모달 구현은 매우 간단합..

[MFC] 도킹 창 등록 관련

Visual studio의 새 프로젝트 생성시 기본으로 세팅되는 도킹 코드 이용 1234567891011121314151617181920212223242526272829// 도킹 창을 만듭니다.if (!CreateDockingWindows()){ TRACE0("도킹 창을 만들지 못했습니다.\n"); return -1;} //도킹하려는 창 각각 EnableDocking 함수 사용m_wndFileView.EnableDocking(CBRS_ALIGN_ANY);m_wndClassView.EnableDocking(CBRS_ALIGN_ANY);m_wndDirView.EnableDocking(CBRS_ALIGN_ANY); //도킹창 하나를 기준으로 잡고, DockPane 함수를 사용하여//프레임 윈도우에 도킹한다. ..

GDI+을 사용하려면 반드시 초기화 구문을 쓰자

GDI+가 경로가 맞음에도 불구하고, 이미지를 불러오지 못해서 찾아봤지만,여러가지 시도를 해봤지만 실패 그러다가 GDI+를 사용하기 전에 초기화가 필요하다는 것을 뒤늦게 알고,선언을 하니까 이미지를 잘 불러오게됨... 기초는 항상 중요하다.... 12345678910111213141516171819202122232425//StdAfx.h#include #pragma comment(lib, "gdiplus")using namespace Gdiplus; //thaApp이 선언되어있는 클래스.h/cpp 파일 쪽 //전역변수 선언ULONG_PTR m_gdiplusToken; BOOL (클래스 이름)::InitInstance(){ GdiplusStartupInput gdiplusStartupInput; if (:..

[MFC] Dialog 기반 프로그램 enter,esc 키 처리에 관해

MFC 대화상자 기반 프로젝트를 설계할 때,Enter, ESC 를 누르면 프로그램이 종료되는 문제가 있다. 이를 개선하기 위해서 함수 OnOK(), OnCancel()를 오버라이딩 하는 방법도 있지만,보통 PreTranslateMessage함수를 많이 사용하는 편이다. (많이 사용하는 편인 것 같다.) 다른 블로그 글에 의하면 해당 키가 감지 되었을 때 return TRUE을 해버리면 된다고 한다.다만 본인은 현재 채팅 프로그램을 학습 중이였기 때문에Enter키 이벤트가 필요해서 꽤나 골치 거리였다. http://mainia.tistory.com/599 해당 블로그 게시글에 힌트를 얻어서 엔터(VK_RETURN)를 눌렀을 경우, 포커스를 찾아서 만일 입력창에서 엔터키를 눌렀을 경우, Send 명령을 실행..

[C++, MFC] Radio button 그룹화

1. UI를 만든다. 2. 각각의 라디오 버튼의 속성을 지정한다.- 여기서 중요한 속성은 Group과 ID 이다.- ID를 통일 시키고 뒤의 숫자로 구분합니다.- Group과 Tabstop 의 경우 첫번째 라디오 버튼만 True 나머지는 False로 설정합니다. (마지막 버튼도 TRUE로 설정하라는 글도 간혹 있는 것 같습니다.) 3. 라디오 버튼을 추가한 다이얼로그 헤더에 (저 같은 경우에는 ServerCppDlg.h 파일)에 변수와 함수를 선언합니다.- 변수 : UINT m_radioProgramMode 변수명은 자유라디오 버튼 클릭시 해당 값을 저장하는 용도-1 : 선택안함0 : 라디오 버튼 첫번째 자리1 : 라디오 버튼 두번째 자리2 : 라디오 버튼 세번째 자리 ............ - 함수 :..