Первым постом из этой серии был пост “Как реализовать сворачивание в трей на C#”. В нем также затрагивались и другие вопросы, вытекшие в последствии в отдельные посты:
Первым постом из этой серии был пост “Как реализовать сворачивание в трей на C#”. В нем также затрагивались и другие вопросы, вытекшие в последствии в отдельные посты:
Здесь я хочу рассказать об одной интересной возможности. А именно, о том, как создать «на лету» и добавить в трей иконку из ASCII символов, т.е. добавить туда произвольный текст, средствами C# и .net. Честно говоря, я не очень хорошо представляю себе, где это может понадобиться на практике, но вдруг кому пригодится.
В этом посте рассматривается довольно небольшое, но иногда полезное дополнение к программе – всплывающее окно сообщений (или информационное всплывающее окно). Это окно выглядит примерно так же, как сообщения «Центра обновлений Windows« о наличии новых обновлений, сообщения в некоторых плеерах, всплывающих из трея и т.п.
В этом посте речь пойдет о том, как добавить контекстное меню к иконке в трее нашего приложения на C#. Контекстное меню – это меню, которое как правило появляется при клике правой кнопкой мышки на том или ином месте или элементе управления и «помогают пользователю в заданном контексте приложения», как сказано в MSDN.
В этом коротком посте я расскажу, как можно обеспечить возможность перетаскивания окна за любую точку его содержимого. А коротким он будет потому, что опишу я только один способ. Самый, на мой взгляд, элегантный, простой и красивый для решения данной задачи. В принципе, то же самое можно сделать и через обработку сообщения WM_MOVE, но это, в данном случае, будет, как мне кажется, слишком сложным. Мы пойдем другим путем. Путем «обмана» Windows. Когда пользователь будет пытаться перетащить окно за клиентскую область, мы заставим Windows думать, что перетаскивание на самом деле осуществляется за заголовок окна. Таким образом, все операции, требуемые для осуществления этого действия, возьмет на себя ОС.
Это своего рода «развлекательный» пост. Призван он к двум целям: немного расслабиться и подумать о вечном. Или наоборот: расслабиться и немного подумать о вечном. Кому как больше нравится
Это делается предельно просто. Чтобы форма не была видна при старте приложения, гарантированно не было эффекта мигания формы и прочего, достаточно всего лишь не передавать параметр-стартовую форму при запуске цикла обработки сообщений в функции Main нашего приложения на C#. Запуск цикла осуществляется методом Run() класса Application. Как написано в MSDN, он (метод Run) «запускает цикл обработки сообщений приложения в текущем потоке и, при необходимости, делает форму видимой». Вот эту самую форму ему в данном случае и не передаем. Главное, не забыть её создать. Иначе все, привязанное к ней, не будет, естественно, работать