Шаг 107 - Добавим значек в область SysTray

	От: Aleksander Romanovsky 
	Кому: kaev@yandex.ru
	Дата: 10 февраля 2000 г. 13:15
	Тема: Можно вопросик...
	Добрый день.
	Не подскажешь как избавиться от пиктограммы в панели задач.
	Я перехватил сообщение минимизации из системной панели,скинул
	пиктограмму в SysTray,но вот убрать пиктограмму из панели задач
	не получается.
	Заранее благодарен.
	Alex.

	От: Andy 
	Кому: kaev@yandex.ru
	Тема: MFCByStep
	Дата: 4 февраля 2000 г. 14:06
	Привет
	Ты не знаешь как сделать, чтобы диалоговое приложение под MFC при запуске не
	открывала диалог а появлялась в нижнем правом углу в виде иконки?
	andy

Итак, если я не ошибаюсь, то нижнее правое окошко это область имеющая название SysTray. Туда можно помещать иконки программ. Создаем приложение MFC AppWizard на основе диалогового окна. Вырубаем все лишнее. Теперь на диалоговое окно помещаем две кнопки и создаем функции их обработки. Вот так.

107_1.gif (1890 b)

Пора делать код для кнопок. Этот для кнопки SysTray, которая поместит значек в эту область.

void CTestSystrayDlg::OnButton1() 
{
	NOTIFYICONDATA nf;
	nf.hWnd = m_hWnd;
	nf.uID = NULL;
	nf.uFlags = NIF_ICON;
	nf.uCallbackMessage = NULL;
	HICON hIcon;
	hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	nf.hIcon = hIcon;
	Shell_NotifyIcon(NIM_ADD,&nf);
}

А этот код для кнопки Remove.

void CTestSystrayDlg::OnButton2() 
{
	NOTIFYICONDATA nf;
	nf.hWnd = m_hWnd;
	nf.uID = NULL;
	nf.uFlags = NIF_ICON;
	nf.uCallbackMessage = NULL;
	nf.hIcon = NULL;
	Shell_NotifyIcon(NIM_DELETE,&nf);
}

Мы используем функцию Shell_NotifyIcon, которая добавляет, модифицирует и удаляет иконы из панели задач. Вот её описание.

WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
    DWORD dwMessage, 
    PNOTIFYICONDATA pnid
);	

Нам нужно указать команду и заполнить структуру типа NOTIFYICONDATA. В ней указать наш HWND, установить флаги, указать ссылку на икону, что я и делаю.

Давайте испытаем. Нажмите кнопку SysTray и значек появится, нажмите Remove и значек удалится.

107_2.gif (789 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 11.02.2000