기본 콘텐츠로 건너뛰기

12월, 2006의 게시물 표시

마소잡지에서 MFC

베르도 사는 이야기 | 베르도 http://blog.naver.com/berdo_seok/70000363288 개발도구 중 가장 강력한 프로그래밍 언어로 손꼽히는 C++. 하지만 명성만큼 강력한 성능을 발휘하는 프로그래밍 기법을 익히는 것은 생각만큼 쉽지 않습니다. 이번 호에서는 C++의 내부를 들여다보고 가장 널리 이용되고 있는 C++ 프레임워크인 MFC를 탐험함으로써 새로운 시각으로 C++ 코드를 볼 수 있는 방법을 제시합니다. Undocumented C++ 1999 년은 필자에게 아주 중요한 의미로 남아 있습니다. 새 천년을 앞둔 마지막 해였으며 영화 매트릭스가 우리에게 첫선을 보였고 예언처럼 과연 지구가 멸망할 것인가가 초미의 관심사였던 때이기도 했습니다. 또한 필자가 처음으로 마소를 통해 여러분들을 만난 것도 1999년이니 기억에 남는 것은 당연할 것입니다. 그때 필자가 썼던 기사의 내용은 MFC를 이용해 MS 오피스와 같은 UI를 구현하는 방법에 대한 것이었습니다. 당시만 해도 대부분의 애플리케이션이 C/S 환경으로 제작되었으므로 가장 강력한 애플리케이션 개발도구인 C++를 사용하는 것이 당연한 것처럼 받아들여졌습니다. 통계를 보더라도 C++는 전 세계적으로 가장 애용되는 프로그래밍 언어였으니까요. 2000년 이후 개발환경이 웹 플랫폼으로 급속히 이전되면서 C++는 가장 많은 개발자가 사용하는 언어의 자리에서 물러나게 되고 자바가 그 자리를 대신하게 되었습니다. 단적으로 필자만 하더라도 2000년 이후부터는 MFC를 이용한 프로그램 개발보다는 자바를 이용한 웹 애플리케이션 개발을 더 많이 하고 있으니까요. 게임이나 PC 애플리케이션을 제외한다면 MFC의 활동 영역은 서버 COM 개발이나 클라이언트 레벨에

CTreeCtrl - OnNotify

2003-03-21 오전 3:29:28   /  번호: 289850  / 평점:   (-) category: VC++ 일반  /  조회: 991    트리 컨트롤에서 TVN_SELCHANGED...가 안되네요... 신주철 / skyjedi         MFC 5.0(VC 97버전)으로 하고 있는데 트리 컨트롤의 TVN_SELCHANGED 메시지 매핑한 함수가 호출이 안되여 spy++로 메시지 검사 해봐도 트리컨트롤에서 이리저리 클릭해도 그 메시지는 발생이 안되네요 CTreeCtrl을 상속받아서 만든 클래스를 다이얼 로그의 트리컨트롤에 연결하고 있습니다. TVN_SELCHANGING은 잘 먹더군요 우찌 이런일이?? 이 글에 평점 주기:     2003-03-21 오전 11:07:46   /  번호: 289903  / 평점:   (-)     OnNotify메시지로 해결됩니다.   강옥순 / kidspa          제가 사용하고 있는 소스입니다. TVN_SELCHANGED부분만 보세요.. BOOL CAcountDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) {     // TODO: Add your specialized code here and/or call the base class     LPNMHDR hdr;     LPNMTREEVIEW ntv;           hdr = (LPNMHDR)lParam;     ntv = (LPNMTREEVIEW)lParam;     //TVITEMEX TvEx;     Param *pParam;     if(hdr->hwndFrom == m_AcountTree.m_hWnd)     {               switch(hdr->code)//common notifi

다이얼로그 엔터키 막기

웹하드 | 무정혈 http://blog.naver.com/chohj35/120015153197 다이얼로그로 대화창을 만들고 에디트 버튼이나 기타 엔터키 입력을 받는 콘트롤을 올려 놓을 경우에 다이얼로그에서 먼저 엔터키를 받아서 OnOK(); 가 호출되어 걍 ~~ 죽죠 이 부분을 바꾸어 보겠습니다 1. 리소스 부분에서 IDOK 부분을 다른 리소스로 변환합니다 IDOK -- > IDC_BUTTON_ACCEPT #define IDC_BUTTON_ACCEPT 1150 2. IDC_BUTTON_ACCEPT의 핸들러 OnAccept();를 만들죠 void CConfigDlg::OnAccept() { // Add code here.. CDialog::OnOK(); } 3. 그 핸들러에 IDOK의 디폴트 핸들러를 호출합니다. (위에서 같이요: CDialog::OnOK();) 4. :PreTranslateMessage() 핸들러를 만들고 아래와 같이 작성 하세요 BOOL CConfigDlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) // Enter Key Prevent.. so good.. ^^ { if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE ) { ::TranslateMessage(pMsg); ::DispatchMessage(pMsg); return TRUE; // DO NOT process further } } return CDialog::PreTranslateMessage(pMsg); } 5. 다이얼로그를 모달루 띄우고 엔터키를 입력해도 죽지

Icon Editor

툴바에 들어갈 아이콘을 만들면서 한참 짜증을 내던 일이 있었다. 복사/붙이기도 안되고 실력도 없는데 툴마저 이러니까 도무지 깔끔한 결과물이 나오지 않았다. 프로젝트였는데 이렇게 그려서 납품했다. 다시 수정할 일이 생겨서 보니 기능중에 윈도우 bmp 파일을 불러들이는 기능이 있는게 아닌가!!! 이제 Icon Editor에서 허우적 되지 않고 외부에서 손쉽게 BMP 파일을 만들어 불러 들이기만 하면 된다. 256 색상 까지만 지원합니다. Resource ID는 ToolBar에서 나타내고자 할때 사용하는 값입니다.