본문 바로가기

MFC

visual studio 새창에서열기 visual studio 새창에서 열기 win7 에서도 사용가능한 방법입니다.. 현재 Win7을 쓰는 사용자가 꽤 많습니다.. 하지만 Win7은 특성상 동일 확장자의 프로그램이 Open되어 있으면 열려있는 프로그램에서 새로운 파일을 Open해버리는 특성이 있습니다. 기존에 Windows XP에서도 동일한 문제가 있지만 이를 해결 하기 위해서 일반적으로 폴더옵션-파일형식-편집-DDE사용 해제를 하여서 사용을 하면 사용이 가능했습니다. 하지만 현재 Win7에서는 해당 메뉴가 아예 존재 하지를 않기 때문에 레지스트리를 손을 봐야 하는데 이것은 아무래도 위험 부담이 큰 편이어서 내용을 찾던중 수정하기에 좋은 프로그램이 있어 사용법과 내용을 알려드립니다.. 1.우선 현재 게시물에 첨부된 압축파일을 다운로드 하여 .. 더보기
[MFC] 날짜연산하기(CTImeSpan) 로컬시간 구하기 SYSTEMTIME stTime; GetLocalTime(&stTime); 다음날짜 시간 구하기 만약 달의 마지막날 일경우, 다음달로 넘어가야 하기 때문에 CTimeSpan 함수를 사용하여 다음 날짜정보를 구한다. CTime nextDay(stTime); //Local Time을 CTime으로 변환 nextDay += CTimeSpan(1,0,0,0); //Ctime + 하루 stTime.wYear = (WORD)nextDay.GetYear(); stTime.wMonth = (WORD)nextDay.GetMonth(); stTime.wDay = (WORD)nextDay.GetDay(); 이런식으로 하면된다... 참고로 하루 전날의 날짜정보를 얻으려면, CtimeSpan(-1,0,0,0) .. 더보기
MFC 다이얼로그 item 탭 순서 변경 MFC에서 작성한 다이얼로그의 탭순서를 변경하고 싶을때가 있다. 그럴때는 다이얼로그 에디트 창을 띄우고 Ctrl + D 를 누르면 탭 순서 번호가 아래와 같이 나온다. 이때 자신이 원하는 순서로 1번부터 하나씩 아이템을 클릭해주면 탭순서가 변경된다. 더보기
[C, C++] 소스 다이어그램 분석 툴 Doxyzen 다운/설치 C, C++, VC++ 사용자의 코드 분석을 돕는 Doxyzen 이라는 툴에 대해 소개합니다. Doxyzen 은 사용자가 지정한 프로젝트(소스) 의 흐름에 대해서 다이어그램 형식으로 나타내주기 때문에 소스분석을 하는데 많은 도움을 줍니다. 먼저 Doxyzen 프로그램을 설치해 보겠습니다. 설치방법 1. Doxyzen 설치 하단의 경로를 통하여 다운받을수 있습니다. http://www.stack.nl/~dimitri/doxygen/download.html#srcbin 위 경로의 페이지로 이동한 후 A binary distribution for Windows. All versions of Windows since XP are supported. doxygen-1.8.4-setup.exe (현재 최신버전) 을.. 더보기
package 안에서 jni 사용하기 JNI를 사용하는 자바의 클래스가 (default package)가 아닌 다른 package에 있을 경우 (package명이 달라지게 되면) exception 오류가 나게된다. 왜냐?? JNI에 대한 라이브러리를 생성할 때 package 명에 맞게 헤더파일을 생성해야 하기 때문이다.. ㅡㅡ 가령 패키지명이 포함된 클래스의 풀네임이 aaa.kkkclass이라면 (패키지명).(클래스명) 해당 클래스 파일을 컴파일 한 후, 커맨드를 aaa의 상위 폴더에 위치시킨 후 다음 명령어를 실행한다. >javah aaa.kkkclass 그럼 패키지명과 함께 적용된 헤더파일이 생성된다. 이제 dll 프로젝트에 헤더파일을 바꾸고 cpp파일의 함수명을 새로 생성된 헤더파일의 함수명으로 바꾸고 나니 패키지에 포함되어서도 정상적.. 더보기
[MFC] 트레이 아이콘 (Tray Icon) 등록하기 1. 트레이 아이콘이란? 위에 보이는 작은 아이콘들을 트레이 아이콘(Tray Icon)이라고 부른다. 트레이 아이콘은 하나의 응용프로그램을 대표하면서도 적은 공간을 차지하기 때문에 매우 유용하다. 백그라운드와 같이 프로그램을 가동시킬때 매우 유용하게 사용될수 있다. 2. 트레이 아이콘 생성 예제 자 그럼 트레이 아이콘을 생성 예제를 살펴보자. 2-1) 트레이아이콘 생성 트레이 아이콘을 생성할 곳에 (특정키나 버튼 입력시 혹은 프로그램 초기화시) 다음 소스를 작성한다. NOTIFYICONDATA nid; ZeroMemory(&nid, sizeof(nid)); nid.cbSize = sizeof(nid); nid.uID = 0; nid.hWnd = m_pMainWnd->GetSafeHwnd(); nid.uF.. 더보기
[MFC] HotKey(핫키)를 사용하여 키보드 막기 예제소스 키보드나 마우스의 제한, 혹은 입력정보를 컨트롤(정보조작 등) 하기위해 메시지후킹을 많이 사용한다. 하지만 특정키에 대해 컨트롤 하기위해서는 WM_HOTKEY를 사용하는 것이 훨씬 간편하게 구현가능하며 이해하기도 쉽다. 그럼 프린트스크린 키(Print Screen Key)의 입력을 막는 프로그램의 소스를 살펴보자. [MainFrm.cpp] int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIP.. 더보기
[MFC] STOPWATCH(스톱워치) 시간 측정하기 예제소스 시간을 측정할 수 있는 StopWatch 함수에 대해 알아보자. StopWatch는 함수 등 작업의 소요시간이 얼마나 걸리는 지 측정하는 데 용이하다. 사용법은 간단하다. 1. 다음 예제를 입력하여 헤더 파일을 생성한다. [StopWatch.h] #ifndef __STOPWATCH_H__ #define __STOPWATCH_H__ #include class STOPWATCH { private: struct _timeb m_Stb; struct _timeb m_Etb; __int64 m_stime; __int64 m_etime; public: void Start() { _ftime(&m_Stb); } void End() { _ftime(&m_Etb); } __int64 TimeCheck() { m_stim.. 더보기