MFC 에서 창 을 트 레이 로 최소 화 하 는 원리 및 작업 절차
void CMyDlg::ToTray()
{
NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(nid.szTip," "); //
Shell_NotifyIcon(NIM_ADD,&nid); //
ShowWindow(SW_HIDE); //
}
로 최소 화 2.복구 인터페이스 함수 가 헤더 파일 에서 메시지 응답 함수
afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAM lParam) ;
//wParam ID, lParam
LRESULT CMyDlg::OnShowTask(WPARAM wParam,LPARAM lParam)
{
if(wParam!=IDR_MAINFRAME)
return 1;
switch(lParam)
{
case WM_RBUTTONUP:// , “ ”
{
LPPOINT lpoint=new tagPOINT;
::GetCursorPos(lpoint);//
CMenu menu;
menu.CreatePopupMenu();//
menu.AppendMenu(MF_STRING,WM_DESTROY," "); // “ ”, WM_DESTROY ( ), 。
menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this); //
HMENU hmenu=menu.Detach();
menu.DestroyMenu(); //
delete lpoint;
} break;
case WM_LBUTTONDBLCLK: //
{
this->ShowWindow(SW_SHOW);//
DeleteTray();
} break;
default: break;
}
return 0;
}
를 정의 하여 트 레이 아이콘 함수 삭제
void CMyDlg::DeleteTray()
{
NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK; //
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(nid.szTip," "); // “ ”
Shell_NotifyIcon(NIM_DELETE,&nid); //
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MFC는 화면을 나눈 후 좌우 두 개의 대화상자, 즉 두 개의view 구역 관련 매개 변수로 나뉘어 설정한다.1. 모든 메뉴 막대 버튼을 CmainFrame 클래스로 정의하는 것이 좋습니다.메뉴 표시줄 단추를 다른view에 정의하고 다른view인터페이스를 클릭하면 해당 메뉴 항목이 비워지는 현상이 일어나지 않습니다.이 현상...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.