이것저것 176

[MFC] - 다이얼로그 기반 프로그램에서 실행과 동시에 다이얼로그 감추기

[출처] - http://frog3147.tistory.com/entry/다이얼로그-기반-프로그램에서-실행과-동시에-다이얼로그-감추기 다이얼로그를 domodal로 띄울 때 실행과 동시에 다이얼로그를 트레이로 내리거나 감추어야 할 경우 일반적으로 사용하는 방법으로 윈도우를 보이지 않게 하려면 ShowWindow(FALSE); 와 같이 하면 되지만 다이얼로그 기반의 프로그램에서는 DoModal 함수가 내부적으로 WM_SHOWWINDOW 메시지를 사용하여 윈도우를 띄워버리기 때문에 OnInitalDialog나 OnCreate 처리기에서 인위적으로 ShowWindow(SW_HIDE); 라고 코딩을 해놓아도 해당 작업이 무시되어 버린다. 이러한 문제가 발생하는 이유는 DoModal 함수가 내부적으로 메시지 루프를..

DLL 학습 중

※ 라이브러리 : 함수, 데이터, 타입 등 여러가지 프로그래밍 요소들의 집합으로, 자주 사용되는 표준적인 함수를 미리 만들어서 모아 놓은 것 ⊙ 정적 링크 : 컴파일 시에 함수가 실행 파일에 연결. 실행 파일의 크기가 큼, 단독 실행 파일 ⊙ 동적 링크 : 실행시에 함수가 실행 파일에 연결. 실행 파일의 크기가 작음, 단독 실행 불가능(DLL 필요) ※ DLL 동적 링크 (Dynamic Link Library ) : 동적 링크란 컴파일시에 함수의 코드가 실행 파일에 복사되는 것이 아니라 실행 중에 라이브러리에 있는 함수를 호출 하는 방법 ※ 동적링크 장점 1. 한 코드를 여러 프로그램이 동시에 사용하기 때문에 메모리가 절약 2. DLL을 사용하는 프로그램은 크기가 작다 3. DLL을 교체하여 프로그램의 ..

[MFC] - 키보드 후킹

※ 훅킹(Hooking) : 이미 작성 되어 있는 코드의 ㅣ특정 지점을 가로 채서 동작 방식에 변화를 주는 일체의 기술 - 인터럽트 가로채기 기법, 메지시 가로채기 등등 ※ 메시지를 가로챌 범위에 따라 지역 훅, 시스템 전역 훅으로 구분 - 지역 훅(Thread Specific) : 특정 스레드에서 발생하는 메시지들만 전달 받음 - 시스템 전역 훅(System Wide) : 시스템의 모든 스레드에서 발생하는 메시지를 받고자 할때는 전역 훅을 설치 ※ 훅 프로시저 : 훅 체인에 등록되어 메시지를 감시하는 함수 원형 Ex) LRESULT CALLBACK KeyboardProc(int code, WPARM wParam, LPARAM lParam); 인수의값은 전달 받는 메시지타입에 따라 달라 질 수 있다. ※..

[MFC] - 트레이 아이콘 등록 및 윈도우 감추기

출처 : http://hotangs.tistory.com/28 윈도우 우측 하단에 트레이 아이콘을 등록하는 방법이다. 우선 프로젝트에 현재 트레이 상태를 알수 있는 BOOL 변수를 선언한다. Protected 에 선언 변수 이름은 m_bIsTrayIcon 로 하겠다. 다음 트레이아이콘을 등록하는 함수를 만든다. 함수 이름은 RegistTrayIcon 로 하겠다. Private 로 선언 그리고 코딩한다. void CTrayDlg::RegistTrayIcon() { NOTIFYICONDATA nid; nid.cbSize = sizeof(nid); nid.hWnd = m_hWnd; // 메인 윈도우 핸들 nid.uID = IDR_MAINFRAME; // 아이콘 리소스 ID nid.uFlags = NIF_MES..

[MFC] - 메시지 정보(마우스 & 키보드)

1.클라이언트 영역 메시지 - 뷰 클래스 메시지 : 메시지 핸들러 : 설명 생략 WM_LBUTTONDOWN : OnLButtonDown WM_LBUTTONUP : OnLButtonUp WM_LBUTTONDBLCLK : OnLButtonDblClk WM_MBUTTONDOWN : OnMButtonDown WM_MBUTTONUP : OnMButtonUp WM_MBUTTONDBLCLK : OnMButtonDblClk WM_RBUTTONDOWN : OnRButtonDown WM_RBUTTONUP : OnRButtonUp WM_RBUTTONDBLCLK : OnRButtonDblClk WM_MOUSEMOVE : OnMouseMove 메시지 핸들러 : void On~~ (UINT nFlags, CPoint point)..

[MFC] - 키보드 메시지 처리

Dialog베이스 환경에서 메시지 키보드를 이용하기 위해서, OnKeyDown 등의 함수를 이용하여 처리 하려고했다. 모든 에러도 없이 정상 컴파일 했으나, 아무리 키보드를 눌러도 반응이 없다;;; 여기 저기 인터넷을 둘러 본 결과;;; OnKeyDown등은 View 클래스에 우선권이 있어, Dialog나 기타 클래스에서는 정상 호출이 되지 않을 수도 있단다;;; 그래서 방법전환; PreTranslate Message 함수 이용!! BOOL CPowerManagementDlg::PreTranslateMessage(MSG *pMsg) { CString str; if(pMsg->message == WM_KEYDOWN) { str.Format("키 눌러짐 "); MessageBox(str); } //retur..

[MFC] Serial 통신 관련 소스

시리얼 통신 관련 소스 예전 학교 다닐 때 부터 공유(?)가 되었던 소스. 그리고, 이 소스를 기반으로 간단한 시리얼 통신프로그램 제작을 지원하는 문서를 첨부합니다. 위 자료는 본인이 제작/수정한 자료가 아니나, 첫 입문자에게는 큰 도움이 될 것같아 공유를 합니다. 혹여, 위 파일들의 공유가 문제가 될경우, 연락을 주시면 즉시 자삭하겠습니다.

[펌] HD 고화질 동영상 정리 및 KMP설정

Cyberlink PowerDVD H.264/AVC 코덱, DxVA 설정하기(H.264, x264), KMPlayer 및 곰플레이어 그래픽 카드가 H.264 DxVA를 지원하지 않는다면 그냥 좀 더 구하기 쉬운 CoreAVC를 사용하시는 것이 좋겠습니다. H.264 DXVA를 위해선 그래픽카드가 H.264 DXVA 하드웨어 가속을 지원해야하고, 그래픽 드라이버도 H.264 DXVA를 지원하는 최신 버전을 깔아야하며, H.264 DXVA를 지원하는 코덱이 있어야합니다. 일단은 Cyberlink사의 코덱을 KMP 및 곰(GomPlayer)에서 설정하는 법을 알아보겠습니다.(참고 : H.264 DXVA를 위해 필요한 것) ※ 그래픽 카드가 H.264/AVC에 대해서 DxVA 가속을 지원하지 않거나, 파워DVD..