Как выделить элемент панели задач - PullRequest
2 голосов
/ 16 мая 2010

Почти во всех мессенджерах, когда ваше окно чата свернуто на панель задач, элемент панели задач чата меняет цвет или становится ярче, когда у вас появляется новое сообщение. Я искал любую помощь о том, как сделать это с помощью .NET Winforms или WPF

Есть ли примеры кода?

=============================================== ======================

РЕДАКТИРОВАТЬ: я использовал FlashWindow для моего окна WPF.

Ссылка: http://www.aeoth.net/blog/2007/04/27/flashing-the-window-in-wpf-c-2/

Ответы [ 2 ]

7 голосов
/ 16 мая 2010

Вы захотите использовать функцию FlashWindowEx . По сути, получите дескриптор окна, создайте структуру FLASHWINFO с дескриптором и укажите, как вы хотите, чтобы окно мигало (непрерывно, пока оно не открывалось и т. Д.), И передайте его в FlashWindowEx.

edit: Вот пример того, как это сделать в C #.

0 голосов
/ 18 октября 2012

Я все еще не понял, как заставить его просто выделять элемент панели задач, а не мигать. Вот код, который сработал для меня (я чувствую себя довольно глупо из-за того, что пропущено значение счетчика до 1, надеюсь, это сэкономит кому-то еще время).

Public Structure FLASHWINFO
  Public cbSize As UInt32
  Public hwnd As IntPtr
  Public dwFlags As UInt32
  Public uCount As UInt32
  Public dwTimeout As UInt32
End Structure

Private Declare Function FlashWindowEx Lib "user32.dll" (ByRef pfwi As FLASHWINFO) As Boolean

Private Const FLASHW_STOP As UInt32 = 0
Private Const FLASHW_CAPTION As UInt32 = 1
Private Const FLASHW_TRAY As UInt32 = 2
Private Const FLASHW_ALL As UInt32 = 3
Private Const FLASHW_TIMER As UInt32 = 4
Private Const FLASHW_TIMERNOFG As UInt32 = 12

Public Shared Sub Flash(ByRef thisForm As Form)   
  Dim flash As New FLASHWINFO With {
    .cbSize = System.Runtime.InteropServices.Marshal.SizeOf(flash),
    .hwnd = thisForm.Handle,
    .dwFlags = FLASHW_TRAY Or FLASHW_TIMERNOFG,
    .uCount = 1}
  'Leaving out .dwCount seems to work just fine for me, the uCount above keeps it from flashing

  FlashWindowEx(flash)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...