본문 바로가기
MFC 콤보박스 값 가져오기 (선택된 데이터 불러오기) MFC 콤보박스 값 가져오기 (선택된 데이터 불러오기) 콤보박스 예제 소스는 간단합니다. 아래 코드를 그대로 이용하세요. 1234567CString str;int n; // 인덱스 n = m_ctrlccbox.GetLBTextLen(m_ctrlccbox.GetCurSel());m_ctrlccbox.GetLBText(m_ctrlccbox.GetCurSel(), m_str.GetBuffer(n)); m_str.ReleaseBuffer();Colored by Color Scriptercs 컨트롤 박스(Control Box)의 컨트롤 변수 ctrlccbox의 텍스트와 길이를 얻어오는게 중점입니다. 문자열에 버퍼를 미리 할당해 메모리 누수를 막을 수도 있죠. 단지, 저렇게 얻어온 문자열을 잘라서 사용할 경우(Af.. 2018. 7. 27.
MFC 코딩 표준 7가지 방법, 꼭 확인하세요 (클래스, 인터페이서 UI 등) MFC 코딩 표준 7가지 방법, 꼭 확인하세요 (클래스, 인터페이서 UI 등) MFC 코딩 표준 1. 복잡하지 않게! 함수를 너무 길게 만들지 마세요.화면에 꽉 찰 정도의 한 두 페이지면 충분합니다. 간단 명료해야 가독성이 높아지니 너무 길어진다면 기능별로 분할하세요. MFC 코딩 표준 2. 반드시 분리해야할 인터페이스와 구현부, 그리고 UI와 구현부 CDialog 파생 클래스 안에 실제 구현 사항(아마도 클래스나 클래스 그룹)을 넣지 마세요.별도의 CPP나 헤더 파일에 구현을 하고 당신은 인터페이스 클래스를 사용해야 합니다. MFC 코딩 표준 3. 클래스/구조체 안에선 public 변수를 사용하지 마세요 대신, const와 유사한 Getter/Setter, 인라인 함수를 사용하세요. 그럼으로서, 코드의.. 2018. 4. 11.
MFC 표준 코딩 규칙 (가이드 3개, F1, 옵션, ASSERT 매크로) MFC 표준 코딩 규칙 (가이드 3개, F1, 옵션, ASSERT 매크로) 코드 프로젝트에 올라온 MFC 표준 코딩 규칙(코딩 가이드)입니다. 어떤 인도분이 예전에 올려주신 글인데, 어차피 MFC는 업데이트 멈춰서 예전 글 봐도 상관없습니다. 1. 확실치 않거나 애매할 땐 F1을 눌러 문서를 확인하세요 2. 지금 사용하는 비주얼 스튜디오 프로젝트의 옵션을 이렇게 바꾸세요 아래 그림은 Visual Studio 2010 한글판 기준 C++ - General Warning level - Level 4 (All builds). - 컴파일 시, 단 하나의 경고 메세지도 없어야 합니다 Detect 64-portability issues – Yes (All builds) C++ - Code generation Sma.. 2018. 4. 9.
MFC : 리스트 컨트롤 + 드래그 앤 드랍 (List Control 마우스 이벤트) MFC : 리스트 컨트롤 + 드래그 앤 드랍 (List Control 마우스 이벤트) 출처 - A Drag and Drop List Control [링크] MFC List Control(리스트 컨트롤)에 드래그 앤 드랍 기능 추가 전체 프로젝트 - Drag and Drop ListCtrl_demo.zip [링크]실행 프로젝트 - Drag and Drop ListCtrl_exe.zip [링크]프로젝트 소스 - Drag and Drop ListCtrl_src.zip [링크] 위의 MFC 리스트 컨트롤 예제는 다음과 같은 기능을 포함합니다. 1. 하나, 또는 두 개 이상의 드래그앤 드랍을 지원2. 마우스가 위에 이동하는 잠재적 인 드래그 대상은 (선택) 강조 표시됩니다.3. List Control에 파일을 추.. 2018. 3. 25.
MFC 현재 시간 측정 구하기, 마우스 커서 없애기 MFC 현재 시간 측정 구하기, 마우스 커서 없애기 딱히 설명할 게 없어서 소스만 남깁니다. 1. MFC 현재 시간 측정 구하기 1234567891011121314151617#include #include LARGE_INTEGER liCounter1, liCounter2, liFrequency; // retrieves the frequency of the high-resolution performance counterQueryPerformanceFrequency(&liFrequency); // StartQueryPerformanceCounter(&liCounter1); // ....blabla QueryPerformanceCounter(&liCounter2); // End TRACE(_T("Time : .. 2018. 3. 2.
MFC - GDI+ LCD CONTROL (그래픽 라이브러리) MFC - GDI+ LCD CONTROL (그래픽 라이브러리) MFC는 다들 아시다시피 고대 유물과도 같은 존재라 이걸로 코딩하기 정말 힘듭니다. 생산성이 많이 떨어져요. 그래서 제가 소개하는 GDI+ LCD CONTROL 같은 그래픽 라이브러리는 적극적으로 사용해야 합니다. 첨부 파일 출처 - Code Project : A MFC/GDI+ LCD Control [링크] 실행파일 다운 - IsiLcdLib.zip [링크] 전체 프로젝트 - IsiLcdDisplayProject.zip [링크] 주요 특징 - Draw Border - 폰트 관리 (256) - 전체 크기 제어 - 숫자나 텍스트 표시 - 조명 효과 - 더블 버퍼링 - 투명 효과 - 깜박이는 효과 - 세그먼트나 Dot 크기 조정 사용 방법 1. .. 2018. 3. 1.
MFC, 파일 크기 알아보는 함수 StrFormatByteSize() MFC, 파일 크기 알아보는 함수 StrFormatByteSize() 이 예제의 StrFormatByteSize() 함수는 shlwapi 클래스를 기반으로 합니다. 이 클래스는 윈도우 Visual C++에서 파일 경로를 탐색하여 폴더, 파일의 존재 여부나 생성 삭제 등을 비롯한 전반적인 사항을 알아볼 수 있도록 지원합니다. 파일과 폴더의 상세 정보도 알아낼 수 있기에 파일 탐색 기능이 필요할 때 유용하게 사용할 수 있습니다. 아래 예제 코드는 shlwapi 클래스가 지원하는 일부 기능을 이용해 파일 크기를 리턴합니다. MSDN에서는 영어로 된 문서만 제공하는 데, anysoft의 어느 회원분이 번역을 해주셨습니다. 참조 사이트 MSDN - Shell Path Handling Functions [링크]an.. 2018. 2. 28.
[MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수 [MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수 int PathParseIconLocation( LPTSTR pszIconFile ); pszIconFile에 파일 경로와 아이콘 인덱스가 포함된 경우 이를 적절하게 분리해 준다. pszIconFile에는 경로가, 아이콘 인덱스는 반환 값으로 나오게 되며, pszIconFile은 "경로, icon index" 형식이어야 한다. BOOL PathQuoteSpaces( LPTSTR lpsz ); lpsz에서 공백이 발견되면 lpsz를 큰 따옴표(")로 묶어준다. 공백이 없다면 아무 일도 하지 않고 FALSE가 반환된다. BOOL PathRelativePathTo(LPTSTR pszPath, LPCTSTR pszFrom.. 2017. 11. 16.
CFileDialog, 윈도우7과 윈도우XP 호환 소스 (Modal Dialog) CFileDialog, 윈도우7과 윈도우XP 호환 소스 (Modal Dialog) 아래는 CFileDialog를 이용한 Modal 소스인데 문제 될 것이 없는 평범한 소스입니다. CFileDialog를 Modal로 여는 것이죠. 1234567891011CFileDialog oFileDlg(TRUE, "bmp", "*.bmp", OFN_FILEMUSTEXIST | OFN_LONGNAMES, "BMP Files", this); oFileDlg.m_ofn.lpstrInitialDir = "C:\\"; oFileDlg.DoModal(); if(oFileDlg.GetPathName().Compare("") != 0){...........................}Colored by Color Scripterc.. 2017. 11. 11.
[MFC강좌] CreateFont(), CFont 사용 방법 (static 폰트 변경 방법 예제) [MFC강좌] CreateFont(), CFont 사용 방법 (static 폰트 변경 방법 예제) 이번 MFC강좌에선 CFont의 CreateFont() 사용 방법을 알아보겠습니다. CreateFont를 사용하기 위해선 하나의 객체를 생성한 뒤, 폰트(CFont)를 설정하기 위한 각종 인자들을 넘겨줘야 됩니다. 함수 원형은 아래입니다. 123456789101112131415CFont fntItem; fntItem.CreateFont( 15, // 문자 폭 0, // 문자 높이 0, // 문자 기울기 0, // 문자 방향 FW_NORMAL, // 문자 굵기 FALSE, // 기울기 FALSE, // 밑줄 0, // 취소선 DEFAULT_CHARSET, // 문자셋 OUT_DEFAULT_PRECIS, // .. 2017. 11. 9.
MFC, CString to Char* (문자열 변환, LPSTR, LPCTSTR) MFC, CString to Char* (문자열 변환, LPSTR, LPCTSTR) LPSTR은 char * 형입니다. 해보면 알겠지만 char *형을 CString 형에다 넣으면 들어갑니다. 그러나 반대로는 에러가 납니다. 1. CString to char*, 이 경우에는 에러가 없습니다 12char a[100] = {"하하"};CString b = a;cs 2. 이 경우에는 에러가 납니다 123CString b = "하하";char a[100];a = b;cs 문제 해결방법은 여러가지가 있습니다. 하지만, 이렇게 strcpy를 써서 char* 형인 a변수로 "하하"를 옮긴 다음에 a를 인자로 넘겨주면 에러가 없을것입니다. 123CString b ="하하";char a[100];strcpy(a, b);.. 2017. 10. 13.
[Visual Studio 버전] 컴파일러, _MSC_VER, MFC, 닷넷 (비주얼 C++) [Visual Studio 버전] 컴파일러, _MSC_VER, MFC, 닷넷 Visual Studio에서 위와 같은 _MSC_VER 버전 한 번쯤은 보셨을 겁니다. _MSC_VER은 컴파일러 버전별 매크로 상수값으로 Visual Studio에서 사용하는 컴파일러에게 나를 작업한 컴파일러가 누군지 알려주는 역할도 하게 됩니다. 그리고 Qt 소스나 OCC 같은 3rd party 소스를 빌드하기 위해서도 알아야할 필요가 있는데요.가령, Qt 5.5를 Visual Studio 2015에서 사용하고 싶다면, 2015에 맞는 컴파일러 매크로 상수값이 1900이란 숫자를 알아야 하는 것이죠. 저도 매번 Visual Studio 매크로 상수값을 따로 찾아보다 이젠 한계가 오네요. 그래서 제 블로그에 따로 정리합니다.너.. 2017. 9. 27.