프로그래머의 꿈54 MFC11. DLL 제작 Dll은 Dynamic Link Library의 약자로 완성된 여러개의 CPP파일을 하나로 묶어서 라이브러리로 만들어 사용을 쉽게 하는데 사용합니다. 물론 라이브러리 파일은 확장자 lib파일로 만들어도 되나 DLL로 만들면 여러 가지 장점이 있습니다. 필자의 경우 모든내용을 DLL로 만들지는 않고(DLL파일을 만드는데도 노력이 들어가고 또한 DLL내부에 버그가 있는 경우 따로 컴파일을 해야하므로 관리에도 신경써야합니다) 대화 상자를 여러 프로그램에서 사용하는 경우 많이 사용합니다. 하나의 프로그램에서 대화 상자를 만들어서 사용하고 같은 대화 상자이어도 다른 프로그램에서 사용하기 위해서는 거의 새로 작성하는 것과 같은 노력이 들어 갑니다. 이 문제를 해결하는 방법으로 DLL을 만들어 사용하면 여러 프로그램.. 2022. 3. 7. MFC10. 메모리 MFC를 이용하여 프로그램하기 전에는 대부분 배열 및 포인터를 이용하여 메모리를 사용하였습니다. 그리고 배열 및 포인터를 이용하여 메모리를 사용하여도 프로그램하는 데는 전혀 문제가 없습니다. 그러나 메모리 사용에 있어 더 유연한 Class를 MFC에서 제공하므로 그 내용을 여기에서 소개하고자 합니다. 여기에서 소개하고자 하는 Class는 CArray, CList, CMap입니다. 거의 사용법은 비슷하나(조금씩 다름), 구조적으로 완전히 다른 기능을 수행합니다. CArray CByteArray CDWordArray CObArray //많이 사용 CPtrArray CStringArray //많이 사용 CUintArray CWordArray CList CPtrList CObList //많이 사용 CString.. 2022. 3. 7. MFC09. 인쇄하기 인쇄 기능은 MFC에서 제공하는 인쇄기능을 이용할 경우 몇가지 세팅만하면 간단히 인쇄가 됩니다. GUI 설명에서 잠깐 언급했듯이 BITMAP에 출력 및 프린터 출력등 출력에 해당하는 I/F는 모두 CDC Class에 의해 통합 관리가 됩니다. MFC 내부적으로 인쇄일 경우 인쇄 CDC를 얻어 OnDraw의 인자로 넘겨 줌으로써 거의 수정없이 인쇄가 가능한 것입니다. Source 설명 일반적으로 프로젝트를 생성하여 프로그램을 제작하면 인쇄기능이 그대로 지원됩니다. 그러나 화면해상도와 프린터의 해상도는 차이가 나므로 인쇄물은 좌측 상단에 조그마하게 인쇄됩니다. 따라서 프린터기의 해상도에 맞추어 인쇄를 수행해야만 합니다. 이것은 메핑모드를 바꾸어서 수행할 수 있습니다. 메핑모드에 대해서는 여기서 자세히 설명하.. 2022. 3. 7. MFC08. View에서 깜박임 문제 해결 VisualC++(MFC 프로그램)에서 View를 생성하고 OnDraw함수에서 그림을 그리는 구조의 프로그램을 작성할 경우 일반적인 방법을 사용하면 윈도우 크기 변경등을 할 때 화면이 깜박이고 속도 또한 느려 보기에 좋지 않고, 또한 일정 주기로 화면을 갱신해야 하는 경우라면 그 갱신 주기 마다 전체 화면이 깜박인다는 것을 알 수 있습니다. 이런 문제를 격어 본 사람만 이 내용을 보기 바랍니다. 그렇지 않은 사람이 보았을 경우 혼란만 가중될 수 있습니다. 참고로 책에서 이런 내용은 찾을 수 없어 구현한 내용입니다. VisualC++이 업그레이드 되면 이 문제는 View생성 옵션으로 처리가 가능하도록 해결되리라 생각되나 불행히도 현재는 그런 옵션이 없는 것으로 알고 있습니다. 이 문제를 해결하려면... 1.. 2022. 3. 7. MFC07. Doc-View 구조 프로젝트 위자드를 사용하여 프로젝트를 생성하면(기본 프로그램 작성에서 설명) 다음과 같이 각 기능을 가진 파일들이 생성됩니다(프로젝트 이름을 Test로 만들었을 경우를 예로하여 설명). App : MainFrame을 생성하는 역할을 수행합니다(CTestApp). MainFrame : 타이틀바, 메뉴, 툴바, 상태바 등 프로그램의 바깥 부분을 관리하는 역할을 수행합니다(CMainFrame). ChildFrame : MDI 프로그램일 경우 만 있습니다. MDI 창의 타이틀등 바깥 부분을 관리하는 역할을 수행합니다(CChildFrame). View : 클라이언트 영역(프로그래머 또는 사용자가 그릴 수 있는 영역)을 관리하는 기능을 수행합니다. 실제 화면에 표시하는 루틴을 이 파일에 추가합니다(CTestView.. 2022. 3. 7. MFC06. 대화상자 대화 상자 사용은 내용이 방대하여 여기에서 모든 내용을 설명할 수 없고 많이 쓰는 기능을 위주로 설명합니다. 대화 상자 사용은 Resource 사용에서 잠깐 언급했듯이 Resource 의 Dialog를 이용하여 대화 상자 모양을 설정합니다. 위 그림과 같이 Dialog 트리에서 마우스 오른쪽 버튼을 선택하여 생성된 팝업 메뉴에서 Insert Dialog를 실행하면 IDD_DIALOG1이라는 대화 상자(기본적으로 OK버튼과 Cancel버튼이 들어 있는 대화상자)가 생성됩니다. Properties의 ID를 IDD_TEST_DIALOG라고 설정합니다. 좌측의 Toolbox를 선택하면 다음과 같이 화면에 나타납니다. 여러 가지 Control들이 지원되며 원하는 Control을 마우스 왼쪽 버튼을 이용하여 선택한.. 2022. 3. 7. 이전 1 ··· 4 5 6 7 8 9 다음