Ссылки на все посты из серии “работа с треем на C#”


Работа с треем. Создание иконки из ASCII символов на C#

{lang: 'ru'}

Здесь я хочу рассказать об одной интересной возможности. А именно, о том, как создать «на лету» и добавить в трей иконку из ASCII символов, т.е. добавить туда произвольный текст, средствами C# и .net. Честно говоря, я не очень хорошо представляю себе, где это может понадобиться на практике, но вдруг кому пригодится.


Работа с треем. Создание всплывающего окна сообщений в приложении на C#

{lang: 'ru'}

В этом посте рассматривается довольно небольшое, но иногда полезное дополнение к программе – всплывающее окно сообщений (или информационное всплывающее окно). Это окно выглядит примерно так же, как сообщения «Центра обновлений Windows« о наличии новых обновлений, сообщения в некоторых плеерах, всплывающих из трея и т.п.


Работа с треем. Добавление контекстного меню к форме на C#

{lang: 'ru'}

В этом посте речь пойдет о том, как добавить контекстное меню к иконке в трее нашего приложения на C#. Контекстное меню – это меню, которое как правило появляется при клике правой кнопкой мышки на том или ином месте или элементе управления и «помогают пользователю в заданном контексте приложения», как сказано в MSDN.


WinAPI. Перетаскивание окна за любую его часть

{lang: 'ru'}

В этом коротком посте я расскажу, как можно обеспечить возможность перетаскивания окна за любую точку его содержимого. А коротким он будет потому, что опишу я только один способ. Самый, на мой взгляд, элегантный, простой и красивый для решения данной задачи. В принципе, то же самое можно сделать и через обработку сообщения WM_MOVE, но это, в данном случае, будет, как мне кажется, слишком сложным. Мы пойдем другим путем. Путем «обмана» Windows. Когда пользователь будет пытаться перетащить окно за клиентскую область, мы заставим Windows думать, что перетаскивание на самом деле осуществляется за заголовок окна. Таким образом, все операции, требуемые для осуществления этого действия, возьмет на себя ОС.


Небольшая «тематическая» подборка демотиваторов.

{lang: 'ru'}

Это своего рода «развлекательный» пост. Призван он к двум целям: немного расслабиться и подумать о вечном. Или наоборот: расслабиться и немного подумать о вечном. Кому как больше нравится

Немного истории:


Работа с треем. Создание приложения с изначально невидимой формой на C# на C#

{lang: 'ru'}

Это делается предельно просто. Чтобы форма не была видна при старте приложения, гарантированно не было эффекта мигания формы и прочего, достаточно всего лишь не передавать параметр-стартовую форму при запуске цикла обработки сообщений в функции Main нашего приложения на C#. Запуск цикла осуществляется методом Run() класса Application. Как написано в MSDN, он (метод Run) «запускает цикл обработки сообщений приложения в текущем потоке и, при необходимости, делает форму видимой». Вот эту самую форму ему в данном случае и не передаем. Главное, не забыть её создать. Иначе все, привязанное к ней, не будет, естественно, работать