Страница: 1 |
Как вывести текст произвольным шрифтом, размером, цветом поверх всех окон и так что-бы фокус текущих окон неменялся т.е. так как это делает программ trev.exe идущая с Locker ом
Страница: 1 |
Вопрос: Тукс поверх всего
Добавлено: 14.06.04 12:06
Автор вопроса: Grayich | Web-сайт:
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #1
Добавлено: 14.06.04 12:43
Код тебе точно не скажу, но юзай регионы... Те создаешь форму (окно), пишешь поверх него текст, а ненужное отрезаешь...
А положение окна по оси Z садавай с помошью SetWindowPos...
Если совсем не разберешься - пиши, попробую найти время и сделать, а вообще по-моему где то в примерах было... посмотри...
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 14.06.04 13:25
См. примеры, я отсылал! кажется...
Номер ответа: 3
Автор ответа:
Grayich
ICQ: 208280504
Вопросов: 56
Ответов: 164
Web-сайт:
Профиль | | #3
Добавлено: 15.06.04 11:03
А название мона или лучшее ссылку
а то последнее время я здесь ненаблюдаю ни поиска
ни примеров которые полгода назад были
их запрятали чтоли ?
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 15.06.04 15:18
у меня назывался он CutFrm... как тут на сайте - не знаю...
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 15.06.04 17:11
если всё ещё надо, то вот:
Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long
Dim mMove As Boolean
Dim SX As Integer
Dim SY As Integer
Private Sub Form_Load()
Beep
Const TEXT = "Привет, я вирус"
Dim hRgn As Long
Font.Name = "Times New Roman"
Font.Bold = True
Font.Size = 70
Width = TextWidth(TEXT)
Height = TextHeight(TEXT)
BeginPath hdc
Print TEXT
EndPath hdc
hRgn = PathToRegion(hdc)
SetWindowRgn hWnd, hRgn, False
Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift _
As Integer, X As Single, Y As Single)
mMove = True
SX = X
SY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift _
As Integer, X As Single, Y As Single)
If mMove = True Then
Me.Move Left + X - SX, Top + Y - SY
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift _
As Integer, X As Single, Y As Single)
mMove = False
End Sub
---------------------
чо касается того шоб фокус окон не терялся, думаю придётся искать хендл активного окна, а после того как текст формой нарисуешь, запомнив хендл активного окна заново сделаешь то окно активное
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 15.06.04 18:21
> чо касается того шоб фокус окон не терялся, думаю придётся искать хендл активного окна, а после того как текст формой нарисуешь, запомнив хендл активного окна заново сделаешь то окно активное
Все куда проще, нужно попросту показывать окошко с параметром - не брать на себя фокус! (NoActivate или что-то в этом роде)