728x90
TrayIcon 생성을 위해서는
메시지 처리를 위한 함수와 TrayIcon 생성 함수로 구성됩니다
우선 헤더 파일에 사용자 메시지를 등록과 메시지 처리 함수 생성
그리고 TrayIcon 생성 함수를 등록해 줍니다
#define WM_TRAYICON_MSG (WM_USER + 0x01)
class CMyDlg : public CDialogEx
{
....
afx_msg LRESULT TrayIconMsg(WPARAM wParam, LPARAM lParam);
BOOL MakeTrayIcon();
}
그리고 소스 파일에서 메시지 맵에 아래와 같이 추가합니다
BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)
...
ON_MESSAGE(WM_TRAYICON_MSG, &CMyDlg::TrayIconMsg)
END_MESSAGE_MAP()
그 후 아래 함수 두 개를 완성해 주면 됩니다
LRESULT CMyDlg::TrayIconMsg(WPARAM wParam, LPARAM lParam)
{
if(m_bSetting) return 0;
if(lParam == WM_RBUTTONDOWN)
{
....
}
return 0;
}
BOOL CMyDlg::MakeTrayIcon()
{
m_nid.cbSize = sizeof(m_nid);
m_nid.hWnd = m_hWnd;
m_nid.uID = IDR_MAINFRAME;
m_nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
m_nid.uCallbackMessage = WM_TRAYICON_MSG;
m_nid.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_nid.hBalloonIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
wcscpy_s(m_nid.szTip, _T("Program Name"));
return Shell_NotifyIcon(NIM_ADD, &m_nid);
}
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
반응형
'Application > MFC' 카테고리의 다른 글
[MFC] FTP 파일 다운로드 (0) | 2023.02.20 |
---|---|
[MFC] 실행 파일 버전 가져오기 (0) | 2023.02.17 |
[MFC] TrayIcon 초기화시 재 생성 방법 (TaskbarCreated) (0) | 2023.02.15 |
[MFC] 자식 핸들 가져오기 (GW_HWNDNEXT, GW_CHILD) (0) | 2023.02.14 |
[MFC] MAKELPARAM 사용 방법 (0) | 2023.02.14 |