본문 바로가기

My178

[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.. 2012. 12. 28.
[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.. 2012. 12. 27.
[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.. 2012. 12. 27.
[MFC] Cstring <-> Char* 형변환 CString Char* 형 변환 하는법 CString -> Char * CString strBuffer; char szBuffer[MAX_PATH] = {0,}; int nLength = (MAX_PATH > strlen(strBuffer)) ? strlen(strBuffer) : MAX_PATH; strncpy(szBuffer, (LPSTR)(LPCSTR)strBuffer, nLength); Char * -> CString CString strBuffer; char szBuffer[MAX_PATH]; strBuffer = (LPSTR)szBuffer; 2012. 12. 26.
[MFC] 리스트컨트롤(List Control) 사용 Tip 리스트컨트롤과 관련된 몇가지 예제들을 올려봅니다. 필요한 부분만 참고해서 사용하세요. 1. 리스트컨트롤 추가. 2. 리스트컨트롤 멤버변수 추가 m_list 3. 체크박스 레이아웃 설정 m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES ); 4. 초기화 m_list.DeleteAllItems(); 5. 칼럼명 설정 m_list.InsertColumn(0, _T("번호"), LVCFMT_LEFT, 100, -1); m_list.InsertColumn(1, _T("제목"), LVCFMT_LEFT, 100, -1); m_list.InsertColumn(2, _T("작성자"), LVCFMT_LEFT, 100, -1.. 2012. 12. 26.
[MFC] YCbCr <-> RGB 변환 이미지 처리를 하다보면 YCbCr 과 RGB 간의 변환이 필요할 때가 많다. 그럴경우, 간단한 방법으로 다음과 같이 채널 별 weigth를 주어 처리할 수 있다. Y : 16~235 Cb, Cr : 16 ~ 240 RGB -> YCbCr 변환 Y = 0.257*R+0.504*G+0.098*B+16; Cb = -0.148*R-0.291*G+0.439*B+128; Cr = 0.439*R-0.368*G-0.071*B+128; YCbCr -> RGB 변환 R = 1.164*(Y-16)+1.596*(Cr-128); G = 1.164*(Y-16)-0.813*(Cr-128)-0.392*(Cb-128); B = 1.164*(Y-16)+2.017*(Cb-128); 위와 같이 간단한 수식을 적용하여 변환할 수 있다. 2012. 12. 26.