본문 바로가기

Windows19

UpdateData 함수 UpdateData ( TRUE ) 함수컨트롤 윈도우와 특정 변수 간의 정보교환이 일어나게 하는 함수로, UpdateData( ) 로 선언하면 디폴트로 인수가 TRUE로 지정. 인수가 TRUE 인 경우에는 컨트롤 윈도우에 있는 값이 변수로 들어오고, 인수가 FALSE인 경우에는 변수에 저장되어 있는 값이 컨트롤 윈도우에 출력 됨. 예를 들어, EditText에 사용자가 입력한 값을 EditText에 지정한 변수 CString strText로 받아서 처리하고자 할 때, UpdateData( ); 를 선언하면 strText에 현재 사용자가 입력한 값이 저장된다. 2017. 1. 4.
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.