반응형 분류 전체보기778 폴더 선택 다이얼로그 이전 경로 기억하기 처음 시작 폴더를 지정해 준 후, 폴더 선택 다이얼로그를 띄우는 방법. 종종 기존에 선택했던 경로가 선택된 상태로 폴더 선택 대화 상자를 열고 싶을 때가 있는데, 그 때 사용한다. 기본적인 원리는 폴더 선택 대화 상자를 표시할 때, 기존에 저장된 경로를 선택하도록 하는 것이다. 그리고 IDOK에 해당하는 버튼을 누르면, 즉 폴더를 선택하고 '취소'를 누르지 않았다면, 선택된 경로를 특정 파일에다 저장해 놓는다. 그리고 다음 번에 폴더 선택 대화 상자를 표시할 때 파일에 저장해 놓았던 경로를 읽어 와서 SHBrowseForFolder API에 인자로 넘기는 콜백 함수에 그 경로를 넘겨 주면 된다. 우선 코드를 보고 방법을 이해해 보자. int CALLBACK MyBrowseCallbackProc(HWND .. 2011. 3. 29. [Tree] CTreeCtrl 에 디렉토리 표시하기 탐색기의 폴더 목록 트리와 같은 기능을 하는, CTreeCtrl 을 상속받은 클래스를 만들어 보자. 델파이의 것을 사용해도 되긴 하는데, 좀 너무 모양이 옛날 것 같아서... 여하튼, 탐색기와 비교를 해보면 다음과 같다. 왼쪽: CDirTree, 오른쪽: 윈도우즈 탐색기 소스 코드는 다음에 있다. 소스는 Visual C++ 6.0 으로 작성되어 있다. Visual Studio 2008 에서 열어도 별 문제 없이 실행되는 것을 확인하였다. 단, STL을 사용할 시 VC++ 6.0 에서 경고 메세지가 너무 많아 Warning level 을 0 으로 해놓고 컴파일해서 경고는 많을 수 있으므로 이 부분은 이용자가 적당히 처리해 준다. 탐색기에 나오는 '내 네트워크 환경'과 같은 항목은 CDirTree에 없는 것.. 2011. 3. 29. CWnd 이해하기 CWnd 이해하기 서론 MFC를 하는 사람들이 한 번은 시도해 보게 된다는 일, MSDN의 CWnd 설명 해석하기. 그만큼 MFC를 함에 있어 CWnd를 이해하는 것은 중요하다. MFC의 수많은 컨트롤들이 CWnd를 상속받기 때문에 CWnd를 제대로 이해하게 되면 컨트롤[각주:1]을 다루기 쉬워지며, 더 나아가 MFC를 이용하는 것이 매우 편해진다. MFC를 배우는 사람이 겪는 전형적인 문제는 책에 있는 예제를 따라해서 뭔가 하기는 했는데, 자신이 작성해 놓은 코드가 어떻게 그 일을 하게 되는지 알기 쉽지 않다는 것이다. 그 이유는, MFC는 매우 방대한 라이브러리이기 때문에 MFC의 전체적인 모습을 알지 못하고 그냥 중간에 조금 건드렸기 때문이다. 전체적인 흐름을 알지 못한 채 중간에 있는 것 조금 건.. 2011. 3. 29. [MessageBox] 메시지 상자 사용법 CWnd::MessageBox int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK ); nType Specifies the contents and behavior of the message box. int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType); hWnd 메시지 박스의 오너(Owner) 윈도우이다. 오너 윈도우란 메시지 상자를 소유한 윈도우를 말하며 메시지 박스는 오너 윈도우의 중앙에 나타나며 메시지 박스가 떠 있는 동안 오너 윈도우 는 사용할 수 없는 상태가 된다. 메시지 박스를 닫아야만 오너 윈도우를 사용할 수 있다. lpTe.. 2011. 3. 27. [List] 리스트 컨트롤에 다른 컨트롤 넣기 1.요약 특정 Column에서 다른 Control 을 띄우는 방법 설명. 여기서 사용한 방법은 현재 Cursor가 있는 위치를 파악한후 그 위치에 적당한 크기의 Edit Control를 생성 시킨다. 2.본문 1) CListCtrl를 상속받는 CMyList라는 Class를 만든다. 2) Member변수로 CEdit m_ctrEdit를 선언한다. 3) Member함수로 OnLButtonDown()과 GetSubItemFromPt(point, nItem, nSubItem, rcClient)를 선언 OnLButtonDown() : Edit Control를 생성/삭제 시키는 역할 GetSubItemFromPt(): 현재 Cursor가 있는 곳의 List정보를 가져온다. 4) 함수 내용을 구성한 후(예제 참조) .. 2011. 3. 27. [Tip] Winamp 처럼 TaskBar와 SystemTray 가지고 놀기 1.요약 윈앰프에서 보면 TaskBar와 SystemTray에 동시에 보여주는 모드 혹은 각각 보여주는 모드 그리고 모두 보여주지 않는 모드가 있습니다. 4가지의 기능을 모두 구현해 보도록 하겠습니다. 2.본문 윈앰프의 기능을 살펴보기 위해서 일단 Spy++로 윈앰프를 선택하신후, 메세지는 WS_SHOWWINDOW 와 WS_STYLECHANGED 만을 선택합니다. 일반적으로 윈도우의 속성일 바뀔때 위의 메세지가 발생합니다. 그리고 나서 속성을 여러번 바꾸어 보면 아래의 표와 같습니다. TaskBar 를 보여주기 --> WS_EX_TOOLWINDOW 속성(0x0080)을 뺀다. TaskBar 에서 감춘다 --> WS_EX_TOOLWINDOW 속성(Ox0080)을 넣는다. SystemTray에서 감춘다 --.. 2011. 3. 27. 이전 1 ··· 105 106 107 108 109 110 111 ··· 130 다음 반응형