본문 바로가기

공부/MFC

error C2440: '=' : 'const char [23]'에서 'LPCWSTR'(으)로 변환할 수 없습니다. 이런 에러가 뜨면 문자열 을 _T() 안에 집어넣어 한번 해보는게 좋다. 다른 방법인 프로젝트의 속성을 바꾼다는 등 으로 하면 다른 코드의 처리도 바뀌고 결국 해결이 안되므로 저 방법이 그나마 제일 좋다. 비쥬얼 스튜디오 2008에서 생겼던 에러. 더보기
대화상자 로 경로 찾기 프로그램 내에서 사용되는 코드들을 적어두는 포스팅. 일단은 외형을 짜는 방법부터 시작하였다. 대화상자[ 다이얼로그 ] 를 활용한 경로 알아내기 와 얻은 경로를 에디트 컨트롤 에 집어넣는 법. 도구상자들을 통하여 위와 같이 만들고 우측 파일 찾기 를 더블클릭하거나 이벤트 처리기 추가 를 통해 클릭 관련 처리를 만들어준다. void CTRANSDlg::OnBnClickedPath() { CString strTmp = _T(""); CFileDialog Dlg(TRUE, _T("DAT"), NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, _T("DAT Files(*.dat)|*.dat|All Files(*.*)|*.*||"),this); if(Dlg.DoModal() == ID.. 더보기
MFC 더블 버퍼링 [ Double Buffering ] 책의 608 페이지 에 있는 내용으로 프로젝트명은 RedrawDemo로 작성한다. 윈도우의 깜박임을 제거하는 최선의 방법은 더블 버퍼링 이다. 더블 버퍼링은 화면 DC에 직접 출력하는 것이 아닌 화면 DC와 호환이 되는 메모리 DC를 만들어서 모든 그리기 작업이 끝난 값을 집어넣어둔 후 메모리 DC의 내용을 화면 DC로 복사하는 기법이다. 이렇게 하면 화면의 크기를 변경하더라도 흰색 깜박임이 발생하지 않게 된다.[흰색으로 초기화 시키는게 아닌 메모리 DC의 내용을 가져오기만 하기 때문에.] 전에 쓴 OnPaint()함수의 코드에서 CPaintDC dc(this); 를 CBufferDC dc(this); 로 변경하고 CBufferDC 클래스를 프로젝트에 인클루드 하면 간단히 더블 버퍼링을 구현할 수 있다... 더보기
Visual C++ 2008 MFC Chapter 18 깜박임 방지 이번 챕터에 있는 더블버퍼링 을 공부하기 위한 챕터 18 공부. 응용 프로그램에서 화면의 크기를 조정할 때 대부분 화면 상 깜박임이 발생한다. 메인 프레임 윈도우 일부가 그러는 것은 어쩔 수 없다고 하더라도. 클라이언트 뷰 윈도우가 통째로 깜빡이면 그리 좋은 모습은 아니라 개선을 해야하는 필수 대상이라고 한다. 뭐 본적은 없지만 . WM_ERASEBKGND 메시지에 대하여 알아야 한다. --------- 화면 그리기의 구조 ------- 이 메시지는. WM_PAINT 메시지와 더불어 윈도우를 다시 그릴 때 발생하는 메시지 중 하나이다. 윈도우가 클라이언트 영역과 비 클라이언트 영역으로 구별되어 있고, 각각을 그리도록 하는 메시지 는 WM_PAINT 와 WM_ERASEBKGND 이다. 그러나 클라이언트 영.. 더보기
그림판 만들기 주석첨부 따라하기 클리어 원본 내용을 하나하나 정성들여 따라하면서. 주석을 달은 파일. 고로 원본은 안올림. 이 불친절함이란! 완성 기념 스크린샷도 찍어야징. 더보기