본문 바로가기

MFC

MFC 트레이 아이콘 등록 및 윈도우 감추기 윈도우 우측 하단에 트레이 아이콘을 등록하는 방법이다. 우선 프로젝트에 현재 트레이 상태를 알수 있는 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_MESSAGE | NIF_ICON | NIF_TIP; // 플래그 설.. 더보기
MFC 반투명 윈도우 만들기 수년전에 내가 어느 사이트를 통해 답변한 글인데.. 지금 보니 뭐가 뭔지 기억이 안난다. ㅋ 일단 중요한 것은 아래와 같다. // 헤더파일에..여러 상수 지정. 옵션을 바꿀 수도 있슴. #define WS_EX_LAYERED 0x00080000 #define LWA_COLORKEY 0x00000001 #define LWA_ALPHA 0x00000002 #define ULW_COLORKEY 0x00000001 #define ULW_ALPHA 0x00000002 #define ULW_OPAQUE 0x00000004 typedef BOOL(WINAPI *SLWA)(HWND, COLORREF, BYTE, DWORD); // 요거 선언해주고... // 반투명하게 만드는 루틴. SLWA pSetLayeredWind.. 더보기
MFC Tip. 다이얼 로그 엔터키 막기 MFC 에서 다이얼 로그로 프로그램을 만들경우 실행시켰을때, 엔터키를 누르면 프로그램이 종료되어 버리는 경우가 있다. 이것을 막기위한 방법이 있는데 PreTranslateMessage 함수를 이용하는 것이다. 이 함수는 WinProc 보다 먼저 메세지를 가로채서 핸들링 할 수 있는 것이다. 이 함수를 사용하는 방법은 간단하다. 우선 클래스 위져드를 열고 (Ctrl + W) 다이얼로그 클래스 이름이 예를들어 CPmDlg 라면 클릭하고, 아래와 같이 오른쪽의 PreTranslateMessage 를 선택, AddFunction 을 한다. 그리고 Edit Code 를 선택해서 BOOL CNFDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message ==WM_KEYDOWN).. 더보기