반응형

Programming/MFC 12

Excel Driver 사용한 CDatabase 오류

MFC 중 CDatabase 를 이용하여 Excel 파일을 컨트롤 할 수 있는 기능이 있다. CDatabase database; CString sDriver = _T("MICROSOFT EXCEL DRIVER (*.XLS)"); CString sExcelFile = "xls 파일 전체 경로"; CString sSql; CString strError; sSql.Format(_T("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s"), sDriver, sExcelFile, sExcelFile); if(database.OpenEx(sSql, CDatabase::noOdbcDialog)) { sSql.Format(_T("SE..

Programming/MFC 2017.10.20

MFC 문자가 한글인지 검사/체크하는 방법들

USES_CONVERSION 는 Wide Char 형태를 Ansi 형태로.. 혹은 그 반대로 바꾸는 것을 간편하게 해주는 매크로를 제공한다. A2CW : (LPCSTR) ==> (LPCWSTR) A2W : (LPCSTR) ==> (LPWSTR) W2CA : (LPCWSTR) ==> (LPCSTR) W2A : (LPCWSTR) ==> (LPSTR) T2COLE : (LPCTSTR) ==> (LPCOLESTR) T2OLE : (LPCTSTR) ==> (LPOLESTR) OLE2CT : (LPCOLESTR) ==> (LPCTSTR) OLE2T : (LPCOLESTR) ==> (LPCSTR) CString strTrackData; unsigned char* trackData; int size, decUnicod..

Programming/MFC 2013.01.30

컨트롤을 상속 클래스, NM_CLICK 가 부모윈도우에 통지가 안될때..

MFC 프로그래밍을 하다 보면 컨트롤을 상속받아 새롭게 재정의 하는 경우가 많다. 예를 들어 CTreeCtrl 을 상속 받는 CTestTreeCtrl 을 만든다고 한다면 class CTestTreeCtrl : public CTreeCtrl { } 이런 구조가 만들어진다. 문제는 NM_CLICK, TVN_ENDLABELEDIT 이런 통지 메시지들을 재정의 할때 원하지 않는 결과가 나오는 경우가 있다. 즉, 해당 클래스에서만 NM_CLICK 이 발생을 하고 해당 컨트롤의 부모윈도우에게는 NM_CLICK 이 발생하지 않는 현상이 나타나는것이다. CTestTreeCtrl Class 에 NM_CLICK 를 재정의 하는 메서드를 만든다면 다음과 같이 될것이다. protected: //{{AFX_MSG(CTestTr..

Programming/MFC 2010.12.03

ini 에서 섹션(Section) 정보 얻기 - GetPrivateProfileSectionNames

http://whoim.tistory.com/entry/INI-섹션정보-얻기-GetPrivateProfileSectionNames 처음에는 이분 블로그에서 해당 소스를 보고 사용하였었다.. 며칠후에 해당 소스를 보다가.. 문자열이 \0 로 구분되는것에 착안 좀 더 최적화를 해보았다. 기존 코드 char szBuf[1024] = {0x00,}; char szSect[512] = {0x00,}; DWORDnCnt = ::GetPrivateProfileSectionNames(szBuf, 1024, strPath); int nPos = 0; BOOL bMakedSect = FALSE; // 하나의 섹션을 구성완료하면 TRUE하여 pos를 0으로 초기화 for(int i=0; i < (int)nCnt; i++, ..

Programming/MFC 2010.08.13

CListCtrl 파일로 저장 - CListCtrl Save, Load

CListCtrl 을 사용중 안에 내용을 저장 하기 위해 후딱 만들어 봤다... 아직 충분한 테스트가 안되어 있기에 버그가 있을수 있으니 사용에 주의 바람.. ListCtrlEx.h class CListCtrlEx : public CListCtrl { // Construction public: CListCtrlEx(); // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CListCtrlEx) //}}AFX_VIRTUAL // Implementation public: typedef enum { TEXT_MODE, BINARY_MODE ..

Programming/MFC 2010.08.12

CImageList Class

CImageList CImageList create flags 설 명 ILC_COLOR 디폴트 색상이 적용되는데 포통 ILC_COLOR4가 적용된다 ILC_COLOR4 4비트(16색상) ILC_COLOR8 8비트(256색상) ILC_COLOR16 16비트 ILC_COLOR24 24비트 ILC_COLOR32 32비트 ILC_COLORDDB 장치 종속적인 비트맵 ILC_MASK 투명 이미지를 출력하기 위해 마스크를 사용한다 CImageList draw flags 설 명 ILD_BLEND25, ILD_FOCUS 시스템 하이라이트 색상을 25% 섞어서 출력한다. 마스크가 지정되어 있지 않으면 사용할 수 없다. 탐색기에서 파일을 드래그할 때 파일의 아이콘이 평상시보다 훨씬 더 밝아지는 것을 볼 수 있는데 이 방법..

Programming/MFC 2008.10.08

MFC 에서 서로 다른 클래스의 핸들 얻어오기

프로그램의 뼈대를 이루는 클래스들 간의 상호 참조 1. CWinApp 참조 AfxGetApp 함수는 CWinApp 파생클래스의 인스턴스 포인터를 반환해 준다. CWinApp* AfxGetApp(); 2. 메인 프레임 윈도우 참조 AfxGetMainWnd 함수는 메인 프레임 클래스의 인스턴스 포인터를 반환해 준다. CWnd* AfxGetMainWnd(); 3. 뷰에서 프레임 윈도우/다큐먼트 참조 뷰에서 다큐먼트 참조 CDocument* CView::GetDocument() const; GetDocument()는 CView 클래스의 멤버 함수이다. 4. 뷰에서 자식 프레임 윈도우 참조 뷰 클래스에서 그 뷰를 둘러싸고 있는 프레임 윈도우를 참조하려면 GetParentFrame 함수를 사용한다. 프레임 윈도우는..

Programming/MFC 2008.05.30

Visual Studio 6.0 + Windows XP 설치 해결법

Visual Studio 6.0 + Windows XP 설치 해결법 Posted at 2006/12/14 00:07 Filed under 분류없음 Visual Studio 6.0은 Windows XP에서 설치되지 않는 경우가 있습니다. 보통 vs60wiz.exe가 이유없이 죽어버리는 오류로 어떤 프로그램이 원인인지는 MS도 잘 모릅니다(...) MS의 Knowledge Base에서는 Performance Counter를 원인으로 보고 해결책을 주고 있으며, 단순히 setup.exe를 호환성 모드로 실행하면 된다는 글도 있기는 합니다. 하지만 MS에서 제시한대로 레지스트리에서 열댓개가 넘는 것들을 고치는 것은 너무 피곤하고 귀찮으며 심지어 그마저도 제대로 되지 않았다는 사람도 많습니다-_-; 위 두 해결법..

Programming/MFC 2008.05.28
반응형