Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница:

 

  Вопрос: Создание формы Добавлено: 15.01.04 16:21  

Автор вопроса:  SDL | Web-сайт: StarTeleport.Narod.Ru | ICQ: 272678283 

1. Есть проблема: нужно постоянно следить за открытыми окнами в системе.

Пробовал создавать отдельный поток для этого, но система работает нестабильно, да и команды типа DoEvents не выполняются - слетает, API-Timer работает, но когда форма теряет фокус, слежение прекращается, то же самое с таймером в VB.

Таймер создаю так:

SetTimer 0, 0, 50, AddressOf ScanWindows.

Может, я что-то не так пишу, или есть другой способ? Подскажите, пожалуйста!

2. Для придания форме нужной формы использую AutoFormShape (может быть вам известна по WindowsXPControls).

Привожу ее код:

---------------

Public Function AutoFormShape(bg As Form, transColor)

Dim X, Y As Integer

CurRgn = CreateRectRgn(0, 0, bg.ScaleWidth, bg.ScaleHeight) ' Create base region which is the current whole window

While Y <= 5 ' Go through each column of pixels on form

While X <= bg.ScaleWidth ' Go through each line of pixels on form

If GetPixel(bg.hdc, X, Y) = transColor Then ' If the pixels color is the transparency color (bright purple is a good one to use)

TempRgn = CreateRectRgn(X, Y, X + 1, Y + 1) ' Create a temporary pixel region for this pixel

success = CombineRgn(CurRgn, CurRgn, TempRgn, 4) ' Combine temp pixel region with base region using RGN_DIFF to extract the pixel and make it transparent

DeleteObject (TempRgn) ' Delete the temporary pixel region and clear up very important resources

End If

X = X + 1

Wend

Y = Y + 1

X = 0

Wend

success = SetWindowRgn(bg.hWnd, CurRgn, True) ' Finally set the windows region to the final product

DeleteObject (CurRgn) ' Delete the now un-needed base region and free resources

' This code is by Chris Yates (1999)

End Function

------------

Когда у меня стоял Windows 98, все было ОК, сейчас у меня Windows 2000, и участки, которые должны быть прозрачными, остаются видимыми. В чем же дело??

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам