본문 바로가기

Windows/MFC 강좌 & Tips12

Dialog based 그림판 1. 글을 쓸 수있는 컨트롤이 Edit Text라면, 그림을 그릴 수 있는 컨트롤은 Picture Control - 배경을 하얀색으로 하기 위해서는 속성 >> Type : Rectangle , Color : White로 지정 2. 직선그리기 기능 추가 dc.MoveTo( ) 는 기준 점의 위치를 특정 좌표로 이동시키는 함수 dc.LineTo ( ) 는 함수에 의해 설정된 기준 점 좌표로부터 직선을 그려주는 함수 => dc를 얻어왔을 때 최초로 그려지기 시작하는 위치는 (0,0) 이다. 이 때, MoveTo( ) 함수는 그려지기 시작할 위치를 설정해주고, 이 위치부터 LineTo( ) 함수로 지정한 곳까지 그려진다. 따라서 선을 그리려면 MoveTo( ) 함수를 사용해서 어디서부터 그려지기 시작할 지를 설.. 2017. 1. 4.
[나만보기] (1) 로그인 기능 + 위젯 띄우기 보호되어 있는 글 입니다. 2017. 1. 3.
(1) 로그인 기능 + 위젯 띄우기 (1) wTest4 라는 프로젝트에서, wTest.cpp의 InitInstance()에서 wTestDlg객체를 생성하지 않고 개발자가 새로 만든 로그인 다이얼로그 CLoginDlg 객체를 생성해서 DoModal() 함수를 실행시키는 방법 1. wTest4.cpp 의 InitInstance() BOOL CwTest4App::InitInstance() { // 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을 // 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다. // InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다. INITCOMMONCONTROLSEX InitCtr.. 2017. 1. 3.
MFC Dialog 호출 시 실행되는 메세지 순서 DoModal() PreSubclassWindow() OnNcCreate() OnNcCalcSize() OnCreate() OnSize() OnMove() OnSetFont() OnInitDialog() OnWindowPosChanging() OnMove() OnWindowPosChanged() OnWindowPosChanging() OnNcActivate() OnActivate() OnShowWindow() OnWindowPosChanging() OnNcPaint() OnEraseBkgnd() OnChildNotify() OnCtlColor() OnWindowPosChanged() OnPaint() OnCtlColor() OnCtlColor() OnNcHitTest() OnSetCursor() PreT.. 2017. 1. 3.
[Widget] CreateProcess & 프로세스 중복 방지 이전 글에서 MFC Dialog로 위젯을 만들어서 버튼 클릭하면 메모장 실행되는 소스를 만들었다. ShellExecute 함수를 CreateProcess로 바꿨고, 버튼을 클릭해서 메모장을 실행하고나서 또 버튼을 클릭하면 이미 실행되고 있다고 메세지 박스를 띄우는 소스이다. 1. 다이얼로그 >> 버튼 >> 더블클릭 해서 자동생성된 메소드 ( 이전 글에서 ShellExecute 함수 썼던 곳 ) void CwTest4Dlg::OnBnClickedNotepad() { HANDLE hEvent; hEvent = CreateEvent(NULL, FALSE, TRUE, AfxGetAppName()); // 프로세스가 이미 실행중인지 검사 if(GetLastError() == ERROR_ALREADY_EXISTS).. 2016. 12. 21.
[Widget] 버튼 클릭하여 메모장 실행 & 버튼 비트맵 이미지 1. 리소스에(프로젝트이름.rc) 버튼에 입힐 이미지 파일 추가 - 리소스 추가 >> 가져오기 >> 파일 선택 - IDB_BITMAP1 로 추가됨 2. 프로젝트이름.rc\Dialog에 있는 다이얼로그 화면에 버튼 추가 - 버튼 >> 우클릭 >> 속성에서 ID 지정, Owner Draw 를 True로 설정 3. 버튼 >> 우클릭 >> 변수 추가 - 변수 형식 기본으로 CButton으로 되어 있음. - 변수 이름 설정하고 마침 4. 프로젝트이름Dlg.h에 public 속성으로 버튼 변수 추가되어 있음 - CButton으로 되어있는 버튼 형을 CBitmapButton으로 강제 변경 5. 프로젝트이름Dlg.cpp >> DoDataExchange(CdataExchange* pDX) 메소드에 변수 추가 되어 있는 .. 2016. 12. 8.