Excel automation from C++ with MFC
After digging through the newsgroups for hours, decoding a ton of VB code for automating Excel, converting it to C++ using VC 6.0 and MFC, and enough hair pulling to make me bald, I thought I’d pos...
After digging through the newsgroups for hours, decoding a ton of VB code for automating Excel, converting it to C++ using VC 6.0 and MFC, and enough hair pulling to make me bald, I thought I’d pos...
프로그램에 락을 걸 일이 생겨났다. 하드웨어 락을 걸면 쉬울텐데 그 정도는 아니고 프로그램의 실행 날짜를 제한 해 달라고 한다. 그래서 파일(license.lic)을 가지고 락을 걸리고 결정을 했다. 요구 사항은 아래와 같다. license.lic 파일이 없으면 프로그램을 실행 할수 없게 한다. 지정한 날짜를 넘어서는 프로그램을 실행 ...
= 읽기 = DWORD dwType = REG_SZ; DWORD dwSize = 128; HKEY hKey; TCHAR szBuffer[128] = {'\0' ,}; LONG lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE , "SOFTWARE\\TestProg" , 0 , KEY_READ , &hKey); if(E...
출처 : http://www.codeproject.com/KB/tree/TreeHighIcon.aspx Introduction This article explain how to use high colored icons with the common control : CTreeCtrl. This is done in 4 lines of code !!!...
프로그램을 하다보면 흔히 간과하기 쉬운 문제를 조금만 신경을 써서 만든다면 더욱 사용자를 만족시키는 프로그램을 만들수 있다. 예를 들어 숫자를 출력하는 프로그램에서 double f = 1.2; CString rString; rString.Format("%lf" , f); 위와 같은 식으로 해서 출력을 한다면 소수점 아래 0 들이 붙어서 출력된...
프로젝트의 AppClass에서 #include <afxadv.h> ///< FOR CRecentFileList void CXXXApp::RemoveMRUString(const CString &rMRU) { char szBuf[MAX_PATH] = {'\0' ,}; const int nMRUSize = m_pRecentFi...
다이얼로그에 위와 같은 에디터 컨트롤을 놓았습니다. 일반적인 방향키는 제대로 먹었으나 엔터키가 작동하지 않았습니다. 그래서 여기저기 찾아보니 다이얼로그 위에 놓이는 컨트롤에 WM_GETDLGCODE처리하는 메서드를 오버라이드해서 DLGC_WANTALLKEYS를 리턴하면 모든 키들을 처리할 수 있습니다. //AFX_MSG BEGIN_MES...
마지막으로 간략한 Diagram입니다.
프로그램을 작성하다 보면 여러개의 클래스를 만들게 되는데 각 클래스마다 가지는 공통적인 함수들이 있을수 있다. 각 클래스를 생성하고 공통함수들을 일일이 추가하는 일은 지루한 일이다. 이 지루한 일을 매크로를 통해서 한방에 해결하도록 하자. [DLL을 통한 기능 확장 - #2]의 예에서 IS_DECLARE_DATA_FUNC()이라는 매크로가 있는...