none
Узнать в расположение панели задач RRS feed

  • Вопрос

  • У меня в программе выводятся сообщения типа как в QIP, скайп ну и подобных. Так вот сообщение по идее должно появляться выше панели задач. Как это сделать я знаю и в принципе всё нормально работает. Но вот когда мне надо сообщение вывести сверху вниз, то оно выводиться всегда одинаково, вне зависимости от того вверху панель задач у пользователя или внизу. Вот как я делаю вывод сообщения:

     

            /// <summary>
            /// Вывести сообщение справа/сверху
            /// </summary>
            private void RightUPMessageShow()
            {
                timerShowMessage_RightUp.Interval = 10;
                timerShowMessage_RightUp.Tick += new EventHandler(timerShowMessage_RightUp_Tick);
                posX = Screen.PrimaryScreen.WorkingArea.Width - this.Width - 2;
                posY = 0 - this.Height - 5;
                needY = Screen.PrimaryScreen.Bounds.Height - Screen.PrimaryScreen.WorkingArea.Height;
                locationMsg.X = posX;
                locationMsg.Y = posY;
                this.Location = locationMsg;
                this.timerShowMessage_RightUp.Start();
            }
            void timerShowMessage_RightUp_Tick(object sender, EventArgs e)
            {
                if (posY < needY)
                {
                    posY += 20;
                    locationMsg.Y = posY;
                    this.Location = locationMsg;
                }
                else
                {
                    this.timerShowMessage_RightUp.Stop();
                }
            }

     


    Вот мне бы узнать как проверять программно где сейчас находиться панель задач и я бы просто расчитывал по другому и всё бы всегда правильно появлялось.

    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:55 MSDN Forums consolidation (От:Разработка Windows-приложений)
    2 апреля 2010 г. 18:53

Ответы

  • Топик с аналогичным обсуждением. Для определения местоположения таскбара Вы можете использовать API SHAppBarMessage() или свойства Screen.Bounds и Screen.WorkingArea


    Для связи [Mail]
    • Предложено в качестве ответа I.Vorontsov 6 апреля 2010 г. 10:07
    • Помечено в качестве ответа I.Vorontsov 7 апреля 2010 г. 10:08
    6 апреля 2010 г. 10:05