Как реализовать режим предосмотра у экранной заставки

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

773FF
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 07.02.2008 (Чт) 10:51

Как реализовать режим предосмотра у экранной заставки

Сообщение 773FF » 14.03.2008 (Пт) 9:03

Как известно экранной заставке вместе с параметром /p (предосмотр) передаётся манипулятор (handle) "монитора" на окне свойств экрана, что позволяет выводить изображение на него.
Написал заставку, но как вывести на "монитор" в окне "Свойства: "экран" (вкладка "заставка") логотип заставки. Т.e. какой-нибудь рисунок.

Заранее спасибо, 773FF

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 14.03.2008 (Пт) 18:26

Public Shared Function FromHwnd(ByVal hwnd As IntPtr) As System.Drawing.Graphics
Member of System.Drawing.Graphics

Summary:
Creates a new System.Drawing.Graphics from the specified handle to a window.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

773FF
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 07.02.2008 (Чт) 10:51

Сообщение 773FF » 18.03.2008 (Вт) 9:00

Спасибо

773FF
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 07.02.2008 (Чт) 10:51

Сообщение 773FF » 19.03.2008 (Ср) 9:01

Вчера набросал вот такой вот код и вроде-бы всё работает:



Код: Выделить всё
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       
        'Получаем параметры командной строки
        Dim CMDLine As String = Trim(UCase(VB.Command()))

...


        'Если вызван режим прeдосмотра, то
        If VB.Left(CMDLine, 2) = "/P" Then
            'Выводим логотип заставки на "монитор" в окне "Свойства: "экран" (вкладка "заставка")
            'Для этого выделяем из командной строки hadle "монитора"
            Dim hwnd As IntPtr = Microsoft.VisualBasic.Right(CMDLine, (Len(CMDLine) - 3))
            'И вызываем процедуру отрисовки логотипа
            FromHwnd(hwnd)

            'Завершаем работу
            End
        End If

...

       
    End Sub


    'Процедура отрисовки логотипа на "мониторе" в окне "Свойства: "экран" (вкладка "заставка")
    Public Sub FromHwnd(ByVal hwnd1 As IntPtr)
        ' Create new graphics object using handle to window.
        Dim newGraphics As Graphics = Graphics.FromHwnd(hwnd1)
        Dim image As New Bitmap(My.Resources.Logo_Small)
        Dim pnt As New Point(0, 0)
        newGraphics.DrawImage(image, pnt)
    End Sub

'My.Resources.Logo_Small - рисунок "Logo Small.jpg" 152x112 пикс.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron