Полезные программы от ZEN-a
Новости | Программы | Гостевая книга | TCP/IP | Услуги | Скачать | E-Книги | Игры | Резюме | English | Deutch

Основы и тонкости VC++-----
Title:       Кое-что, что возможно вы ещё не знали о трее.
Author:      Zarembo Maxim
Environment: VC++ 6.0, MFC, NT 4.0, Win9x, Win2k, winxp

Мы не будем в данной статье или в данной рекомендации подробно затрагивать правила работы c треем. Это и так хорошо рассмотрено в большом количестве посвящённых этому статей. Мы остановимся на маленькой возможности при работе с треем выгружать GUI интерфейс приложения, чем экономим ресурсы компьютера.

Приведём ниже известную всем структуру из АПИ с элементами MFC, которую потом будем использовать для создания иконки в трее:

	 HINSTANCE hInst;
	 #define MYWM_NOTIFYICON		(WM_APP+101)
	 HICON hFrame32;
 	 NOTIFYICONDATA tnd;
	CString sTemp;

	hInst=AfxGetInstanceHandle();

	hFrame32 = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDR_MAINFRAME), 
		IMAGE_ICON,	16, 16, 0);

	tnd.cbSize		= sizeof(NOTIFYICONDATA);
	tnd.hWnd		= m_hWnd;
	tnd.uID			= 10;

	tnd.uFlags		= NIF_MESSAGE|NIF_ICON|NIF_TIP;
	tnd.uCallbackMessage	= MYWM_NOTIFYICON;
	tnd.hIcon		= hFrame32;

	sTemp.LoadString(IDS_TITLE);
	wcscpy(tnd.szTip, sTemp);

Данный набор ф-ий используем для вызова приложения из трея:

	Shell_NotifyIcon(NIM_DELETE, &tnd);
	DestroyIcon(hFrame32);
	ShowWindow(SW_SHOW);
	ShowWindow(SW_RESTORE);

Данный набор ф-ий используем для минимизации приложения в трей:

	pWnd->ShowWindow(SW_MINIMIZE);
	Shell_NotifyIcon(NIM_ADD, &tnd);
	pWnd->ShowWindow(SW_HIDE);

Вот эти две функции освобождают выделенную память для графического отображения окошка вашего приложения:

	pWnd->ShowWindow(SW_MINIMIZE);	//минимизируем окно
	pWnd->ShowWindow(SW_HIDE);	//скрываем окно

Если использовать скрытие окна без минимизации, выделенная память под графику контролов и других объектов будет не освобождена и отъедать кусок у общей памяти.

Вернуться к содержанию...

-----Основы и тонкости VC++

Новости | Программы | Гостевая книга | TCP/IP | Услуги | Скачать | E-Книги | Игры | Резюме | English | Deutch

IBA IS::220036,Belarus,Minsk,K.Libknehta St.,70 Rating All.BY Мы находимся в каталоге Апорт Полезные программы от ZEN-a

Copyright (c) 2001 ZEN. All Rights Reserved. WWW: http://www.softzenware.com E-MAIL: mzarembo@iba.by