티스토리 뷰
Visual Studio 2012
대화상자와 트레이아이콘을 활용해보자.
대화상자를 닫았을 때, 종료가 아닌 트레이아이콘으로 숨겨질 수 있게 하는 것이 목표
Code Project의 Danial Zilcsak의 도움을 받았다.
참조
https://www.codeproject.com/Articles/810/System-Tray-Icons-Minimize-Your-Application-to-the
CDialog를 상속받은 CTrayDialog 클래스를 만들어서 구성하고,
새 프로젝트의 기본클래스를 CTrayDialog로 변환하여 사용 할 것이다.
아래 소스를 다운 받는다. (참조의 홈페이지에서도 받을 수 있다)
압축을 풀고 새로 만든 프로젝트 안에 복사 후, 소스와 헤더를 추가 한다.
(예제는 TrayTest란 프로젝트 이름으로 진행한다.)
1. 기본 클래스 변환하기
보통 MFC 대화상자 기반 프로젝트를 만들면 기본 클래스는 CDialog나 CDialogEX가 될 것이다.
이를 CTrayDialog로 변환하는 작업을 진행한다.
1) TrayTestDlg.h 에 CTrayDialog 헤더 포함하기
// TrayTestDlg.h : 헤더 파일 // #pragma once #include "TrayDialog.h"
헤더 한개만 추가해도 된다.
2) TrayTestDlg.cpp와 TrayTestDlg.h에 있는 기본클래스 변경
기본 클래스는 보통 아래와 같이 표시되어 있다.
class CTrayTestDlg : public CDialogEx
TrayTestDlg.cpp와 TrayTestDlg.h에 있는 저 CDialogEx를 CTrayDialog로 변경한다. (단축키 Ctrl+H)
2. 초기화 루틴
OnInitDialog()에 다음과 같은 소스를 추가한다.
TrayTestDlg.cpp
BOOL CTrayTestDlg::OnInitDialog() { CTrayDialog::OnInitDialog(); // ... TraySetIcon(IDR_MAINFRAME); TraySetToolTip("ToolTip for Tray Icon"); TraySetMenu(IDR_MENU1); return TRUE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다. }
TraySetIcon(): IDR_MAINFRAME을 트레이의 아이콘으로 지정한다.
TraySetToolTip(): 트레이 아이콘의 툴팁을 지정한다.
TraySetMenu(): 트레이 아이콘 우클릭 시 팝업 메뉴를 지정한다.
여기선 메뉴 리소스를 하나 추가(IDR_MENU1)하여 지정하였다.
이렇게 하고 실행하면 문제 없이 실행이 잘 될것이다.
대화상자에서 최소화나 종료버튼을 누르면 대화상자가 사라지고 트레이 아이콘이 보이며
트레이아이콘을 더블클릭하면 다시 대화상자가 표시된다.
TrayDialog 클래스에 대한 내용은 나중에 따로 올리겠음..
끝
'Programming > MFC(C++)' 카테고리의 다른 글
[MFC] 파일 ZIP 압축/해제 활용하기 (3) | 2018.12.17 |
---|---|
[MFC] INI 파일 활용 하기(문자열 값 저장/불러오기) (0) | 2018.12.17 |
[MFC] 로그를 파일로 저장하기 (0) | 2018.12.10 |
[C++] 가변인수를 활용해보자.(로그 저장하기) (0) | 2018.12.10 |
[MFC] 스레드 생성시 구조체 인자 넣기 (0) | 2018.12.07 |
- Total
- Today
- Yesterday
- 부가가치세전산매체
- 프로세스이름변경
- 소켓
- 모달리스
- MXCOMPONENT
- CMFCBUTTON
- Sticky Notes Loading
- SendMessage
- 청년내일채움공제 만기신청
- 해외송금확인
- 스티커메모로드중
- MFC ADO
- 모달리스 다이얼로그
- 전자신고변환
- c++
- 청년내일채움공제
- MFC
- Modeless
- ADO
- 항공알파벳
- 스쿠트항공 환불받기
- 부가가치세
- 법정동코드
- ADODB
- MFC Modeless
- 세금계산서합계표양식
- #자동업데이트
- 전자신고파일설명서
- MSSQL
- sqlite3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |