반응형 C & C++/MFC 컨트롤199 [MFC] [List] OnItemchanged 한번만 호출되게 리스트의 변화될때 동작하는 이벤트인데 디버그 할때 3번이상 이함수로 호출된다. void CNCCView::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); // 한번만 호출 되도록 처리 bool wasSelected = (pNMLV->uOldState & LVIS_SELECTED) != 0; bool isSelected = (pNMLV->uNewState & LVIS_SELECTED) != 0; if(!(!wasSelected && isSelected)) return; *pResult = .. 2011. 11. 2. MFC SDI 프로그램 최대화 시작 BOOL CInternetTamApp::InitInstance() 함수 안에 보면 다음과 같은 코드가 있다. ShowWindows(SW_SHOW); 를 다음과 같이 변경 ShowWindows(SW_SHOWMAXIMIZED); /////////////////////////////////////////////////////////////////////////////////////////////// 다이얼로그박스를 최대 설정은 아래 [Source Code 1] 처럼 ShowWindow(SW_MAXIMIZE) 함수 호출하면 된다. (윈도우에 Maximize Box가 있을 경우....) [Source Code 1] 다음의 코드를 OnInitDailog() 등의 초기화 함수에 넣어주면 풀스크린으로 시작합니다. Di.. 2011. 11. 2. 모달리스 대화상자 작업표시줄에 표시하기 보통 모달리스,모달 대화상자는 작업표시줄에 표시가 안난다.. 근데 가끔 각자 컨트롤하고싶을때가 있는데 그럴경우는 dialog들을 생성할 때 parent window 값을 desktopwindow로 지정하면 된다.. 예를 들면 CXXXDlg Dlg; Dlg.Create(IDD_DIALOG1,GetDesktopWindow()); 이런식이면 가능하다. -------------------------------------------------------------------------------------- 또 한가지팁으로 다이얼로그에서 타이틀바 속성을 를 없에면 작업표시줄에 아무것도 표시가 안나는데 그럴때는 OnInitDialog()함수에다가 SetWindowText(_T("내용")); 추가하면 작업표시줄에 잘.. 2011. 10. 31. 트리 컨트롤에 팝업메뉴 추가하기 트리컨트롤에서 노드를 선택하고 마우스 우측클릭했을때 팝업메뉴가 뜨게 해보자!!! 1.첫번쨰 우선 트리컨트롤에서 이벤트핸들러를 추가한다...(Add Event Handler) 여기서 NM_RCLICK을 선택한다...(그림이 작아서 죄송합니다) 2번쨰 추가하면 다음코드를 추가한다. () void Cdemo2View::OnNMRclickTree1(NMHDR *pNMHDR, LRESULT *pResult) { CPoint p; GetCursorPos(&p); UINT flags; //마우스 위치의 좌푤을 트리의 클라이언트 영역 좌표로 전환 m_Tree.ScreenToClient(&p); //HitTest함수를 이용하여 아이템을 얻고 HTREEITEM nitem=m_Tree.HitTest(p,&flags); //.. 2011. 10. 31. 창의 최소화/최대화 크기 제한 창의 최소화/최대화 크기 제한 창의 최대화 버튼을 눌렀을 때 크기를 지정한다. WM_GETMINMAXINFO(OnGetMinMaxInfo) 메시지 핸들러 추가한다. void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { lpMMI->ptMinTrackSize.x = 300; // 최소화 크기를 300으로 제한 lpMMI->ptMinTrackSize.y = 300; // 쵀소화 크기를 300으로 제한 lpMMI->ptMaxTrackSize.x = 600; // 최대화 크기를 600으로 제한 lpMMI->ptMaxTrackSize.y = 600; // 쵀대화 크기를 600으로 제한 CFrameWnd::OnGetMinMaxInfo(lpMMI); } ///////.. 2011. 10. 31. 타이틀바에 제목없음 제거하기 타이틀바에 제목없음 제거하기 (일반적으로 프로그램을 실행하면 아래와 같이 제목없음이 나온다 왜 나오는지 모르겠다) 제목없음을 제거하려면 아래와 같이 FWS_ADDTOTITLE 속성을 제거해 주는 부분을 추가해 준다. BOOL CMainFrame::PreCreateWindow( CREATESTRUCT& cs ) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.style ^= FWS_ADDTOTITLE; return TRUE; } 2011. 10. 31. 이전 1 ··· 8 9 10 11 12 13 14 ··· 34 다음 반응형