본문 바로가기

Programing/MFC13

[Mac OS] MFC 개발 환경 구축 - Mono 1. Install Mono for Mac Package http://www.mono-project.com/download/2. Install Mono http://www.monodevelop.com/download/ 2015. 11. 17.
MFC - 문자열을 숫자로 변환하기 (HEX to DEC) unsigned char CParser::HexToByte(char hex) { switch(hex) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'A': case 'a': return 10; case 'B': case 'b': return 11; case 'C': case 'c': return 12; case 'D': case 'd': return 13; case 'E': case .. 2014. 3. 20.
MFC - List Control (리스트 컨트롤) List Control List control은 아이콘, 작은 아이콘, 간단히, 보고서의 네 가지 형태로 데이터를 보여주는 컨트롤입니다.이중 보고서 모드가 List control에 설정된 데이터를 가장 자세히 보여주는 모드입니다. 따라서 List control에 데이터를 설정할 때는 이 모드를 기준으로 하면 됩니다. 보고서 모드에는 하나의 아이템에 대해 가로줄로 여러 가지 데이터를 보여줄 수 있는데, 이러한 가루 줄을 각각 컬럼이라고 하고, 컬럼 맨 위에 각 컬럼의 제목을 표시하는 줄을 컬럼 헤더라고 합니다. |구현하고자 하는 기능|List control을 포함하는 대화상자를 만들어 보도록 합니다. 선택항목 삭제, 위로, 아래로 등을 이용해 위치를 바꾸고 삭제하는 프로그램을 만들어 보겠습니다. |App .. 2014. 3. 20.
MFC - 리스트 컨트롤 (List control) 라인별 색상 지정 1. 해더에 추가 afx_msg void OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult); 2. Message Map 등록 IDC_XXXX 는 컨트롤러 아이디를 적으시면 되요 BEGIN_MESSAGE_MAP(CSIMDecoderV10View, CFormView) ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST_SIM_INFO, OnCustomdrawList) ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST_RW_RESULT, OnCustomdrawList) END_MESSAGE_MAP() 3. 함수 추가void CSIMDecoderV10View::OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult) { .. 2014. 3. 20.
MFC - Child Form 최대화 시키기 해더에 void CChildFrame::ActivateFrame(int nCmdShow);추가 하시고 소스에void CChildFrame::ActivateFrame(int nCmdShow) { nCmdShow = SW_SHOWMAXIMIZED; CMDIChildWnd::ActivateFrame(nCmdShow); }추가 하시면 끝!! 2014. 3. 4.
MFC - Dialog(다이얼로그) 색 변경하기 1. 헤더파일에서 Brush를 하나 정의한다. CBrush m_background; 2. 다이얼로그 생성자 또는 초기화하는 부분에서 (InitDialog()) 브러쉬의 색을 설정한다. m_background.CreateSolidBrush(RGB(0, 0, 0)); 3. 클래스 위자드로 WM_OnCtlColor 함수를 설정하고 함수내에서 다음과 같이 코딩한다. HBRUSH CLKSimulatorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); hbr = (HBRUSH)m_background; return hbr; } 2014. 3. 4.
MFC - 현재 실행 프로그램의 파일 경로 가져오기 TCHAR pszPathName[_MAX_PATH];::GetModuleFileName(::AfxGetInstanceHandle(), pszPathName, _MAX_PATH); 2014. 3. 4.
MFC - 실행 파일을 제외한 현재 경로 가져오기 // 현재 실행 프로그램의 파일 경로 가져오기 TCHAR pszPathName[_MAX_PATH]; ::GetModuleFileName(::AfxGetInstanceHandle(), pszPathName, _MAX_PATH); // CString 함수를 사용하기 위해 CString에 TCHAR를 넣는다. CString strPathName = pszPathName;// 실행 파일 이름을 지우기 위해서 왼쪽에 있는 '/'를 찾는다. int i = strPathName.ReverseFind('\\');// 뒤에 있는 현재 실행 파일 이름을 지운다. strPathName = strPathName.Left(i); 2014. 3. 4.
MFC - undeclared identifier 에러 'IDD_DIALOG1' : undeclared identifier 다이얼로그와 연동한 클래스 헤더 파일에 #include "resource.h" 리소스 헤더파일을 등록!! 2014. 3. 3.
MFC - 리스트컨트롤 해당 Item 선택하기 m_List.SetItemState( -1, 0, LVIS_SELECTED|LVIS_FOCUSED );m_List.SetItemState(i, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);m_List.EnsureVisible(i, FALSE); m_List.SetFocus(); 2014. 3. 3.
MFC - ShellExecuteEx 사용 시 공백문제 ShellExecuteEx 을 사용하다 보면, 정확히 Command를 작성해서 넘겼음에도 불구하고 동작하지 않는 경우가 있다. 이런 경우에는 path를 ""로 묶어 주면 간단히 해결된다. // To handle space in the path pathName = "\"" + pathName + "\""; 2014. 3. 3.
MFC - 리스트컨트롤 항목을 엑셀로 저장하기 첨부 된 파일을 추가하고 아래 코드만 삽입하시면 됩니다. void CSIMDecoderView::OnFileSave() { if (m_mylistcontrol.GetItemCount() GetItemCount(); int rowCount = m_mylistcontrol.GetItemCount(); CString strItemText; for (int rowIdx = 0; rowIdx < rowCount; rowIdx++) { for (int colIdx = 0; colIdx < colCount; colIdx++) { strItemText = m_mylistcontrol.GetItemText(rowIdx, colIdx); // Col Data xls.SetCellValue(colIdx + colOffset.. 2014. 3. 3.