본문 바로가기

전체 글178

[MFC] 리스트컨트롤(List Control) 클릭한 곳의 index값 얻어오기 리스트컨트롤 클래스에서 클릭 이벤트를 추가한다. 1. NM_CLICK 이벤트 추가 2. 해당 이벤트 함수내에 소스 추가 void CSlideFrame::OnNMClickList(NMHDR *pNMHDR, LRESULT *pResult) { // LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); NM_LISTVIEW* pNMView = (NM_LISTVIEW*)pNMHDR; int index = pNMView->iItem; *pResult = 0; } 2012. 12. 24.
[MFC] 다이얼로그에 다이얼로그 붙이기 1. 부모 다이얼로그 생성 2. 자식 다이얼로그 생성 - 자식 다이얼로그 속성창에서 style은 child, border는 NONE 으로 설정 변경 3. 부모 다이얼로그의 헤더파일에서 해당 자식 다이얼로그 변수 포인터로 생성 CChildDlg *m_pChildDlg; 4. 부모 다이얼로그의 OnInitDialog에서 m_pChildDlg = new CChildDlg; m_pChildDlg->Create( CChildDlg::IDD, this ); m_pChildDlg->ShowWindow( SW_SHOW ); m_pChildDlg->MoveWindow( rcDlg ); // 크기는 알아서 맞게 지정 이렇게 하면 자식 다이얼로그가 부모 다이얼로그에 붙는다. 2012. 12. 24.
[C] return 0, return 1, return -1 의미 프로그램 혹은 함수의 리턴값을 의미합니다. 보통 0 : 정상 종료 -1: 에러 발생 1이상 숫자 : 정상 종료 되었으나 다른 무엇인가 있음을 나타냄 -2 같은 숫자 : 에러 발생했으나 구체적으로 무엇이다를 나타냄 0과 -1의 경우 위의경우처럼 해석하고 1이상, -2 이상의 숫자의 경우는 구체적으로 무엇때문이다라는 것을 외부에 알려줄때 사용합니다. 이들 숫자로 미리 약속해 놓고 처리합니다. 2012. 12. 24.
[MFC] Main Frame 핸들 얻어오기 MainFrame MainFrame의 핸들을 얻는 방법중 가장 간단한 함수는 AfxGetMainWnd입니다. 다음과같이 사용하면 됩니다. CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); 2012. 12. 24.
[MFC] 자식 dialog에서 부모 dialog변수 및 함수 참조 먼저 자식 Dialog의 cpp파일에 부모 클래스의 헤더파일을 include 해줍니다. #include "ParentDlg.h" 변수의 경우는 ((CParentDlg *)GetParent())->m_flag = TRUE; //부모 클래스의 m_flag 변수 사용시 함수의 경우는 ((CParentDlg *)GetParent())->ParentFunction(filename); //ParentFunction이란 함수에 filename 파라메터를 넣어 호출한것입니다. 2012. 12. 24.
[MFC] EnableWindow TRUE/FALSE EnableWindow란? MFC에서 윈도우폼에 사용된 콘트롤에 대한 능동적인 활성화와 비활성화를 위한 멤버함수이다. 간단히 말해 시각적으로 보이게 할 경우 TRUE, 안보이게 할 경우 FALSE 처리를 하면된다. 버튼을 예로 들어보자. 방법 1.(버튼에 대한 변수설정을 했을경우) 버튼변수명.EnableWindow(TRUE); //활성화 버튼변수명.EnableWindow(FALSE); //비활성화 방법2. GetDlgItem(IDC_BUTTON)->EnableWindow(TRUE); //활성화 GetDlgItem(IDC_BUTTON)->EnableWindow(FALSE); //비활성화 2012. 12. 24.
[MFC] 탭컨트롤(Tab Control) 예제 [ 탭컨트롤(Tab Control) ] 1. 대화상자를 이용한 탭컨틀롤 사용을 알아보자. 2. 3개의 탭을 만들고 각각 대화상자를 붙여본다. 3. 3개의 대화상자를 모델리스형으로 만든다. 각각 CDlgTab1, CDlgTab2, CDlgTab3라고 하자. 4. 각각의 대화상자의 "Styles" 옵션중 "Style"은 "Child"로 "Border"는 "None"으로 "Tile Bar"는 언체크 한다. 5. 3개의 모델리스를 CMainFrame에 다음과 같이 선언하고 CDlgTab1 *m_pDlgTab1; CDlgTab2 *m_pDlgTab2; CDlgTab3 *m_pDlgTab3; * 생성자에 NULL값으로 초기화 해주는 거와 소멸자에세 NULL이 아니면 delete해주는 거 있지 말자. 6. 탭컨트롤에.. 2012. 12. 24.