Пробую таким вот методом, ни точка ни прямоугольник не рисуется.
и hDC кстати, каждый раз разный.
- Код: Выделить всё
hDC = GetDC(GetDesktopWindow())
Call SetPixel(hDC, 960, 540, vbRed)
Call Rectangle(hDC, X, Y, 250, 250)
hDC = GetDC(GetDesktopWindow())
Call SetPixel(hDC, 960, 540, vbRed)
Call Rectangle(hDC, X, Y, 250, 250)
Mikle писал(а):Чем отличается "поверх всех окон прямоугольник красным цветом" от формы красного цвета без бордюра?
TrueTrue писал(а):С формой такое не знаю как сделать. Попробую с формой. Может обойдусь.
Mikle писал(а):Чем отличается "поверх всех окон прямоугольник красным цветом" от формы красного цвета без бордюра?
TrueTrue писал(а):ни точка ни прямоугольник не рисуется
Private Sub Form_Click()
Dim DC As Long
Dim i As Long
DC = GetDC(0)
For i = 100 To 400
SetPixel DC, i, 100, vbRed
Next i
For i = 100 To 400
SetPixel DC, 100, i, vbRed
Next i
For i = 100 To 400
SetPixel DC, i, 400, vbRed
Next i
For i = 100 To 400
SetPixel DC, 400, i, vbRed
Next i
End Sub
Mikle писал(а):TrueTrue писал(а):ни точка ни прямоугольник не рисуется
У меня вот это работает:
- Код: Выделить всё
Private Sub Form_Click()
Dim DC As Long
Dim i As Long
DC = GetDC(0)
For i = 100 To 400
SetPixel DC, i, 100, vbRed
Next i
For i = 100 To 400
SetPixel DC, 100, i, vbRed
Next i
For i = 100 To 400
SetPixel DC, i, 400, vbRed
Next i
For i = 100 To 400
SetPixel DC, 400, i, vbRed
Next i
End Sub
Но лучше рисовать не пиксели, а линии, быстрее.
Хакер писал(а):Это будет стёрто при первой же перерисовке случайных окон, затронутых рисованием, и плюс нарисованный мусор будет двигаться вместе с затронутыми окнами.
TrueTrue писал(а):Ладно, если так сложно просто нарисовать на экране, тогда буду "выкручивать руки".
Mikle писал(а):TrueTrue писал(а):ни точка ни прямоугольник не рисуется
У меня вот это работает:
- Код: Выделить всё
Private Sub Form_Click()
Dim DC As Long
Dim i As Long
DC = GetDC(0)
For i = 100 To 400
SetPixel DC, i, 100, vbRed
Next i
For i = 100 To 400
SetPixel DC, 100, i, vbRed
Next i
For i = 100 To 400
SetPixel DC, i, 400, vbRed
Next i
For i = 100 To 400
SetPixel DC, 400, i, vbRed
Next i
End Sub
Но лучше рисовать не пиксели, а линии, быстрее.
hDC = GetDC(GetDesktopWindow())
TrueTrue писал(а):Соответственно и девайс не тот.
TrueTrue писал(а):Ребят, кто знает, подскажите, мне чисто для отладки, нужно нарисовать прямо на экране поверх всех окон прямоугольник красным цветом, как это сделать?
Andrey Fedorov писал(а):Когда делал программу для снятия скриншотов (лет так 15 назад), то выводил на весь экран форму без бордюров со скриншотом и уже по ней таскал мышью прямоугольник для выбора нужного участка. Все получилось до смешного примитивно. Вроде для этой части даже API не понадобилось..
Сейчас этот форум просматривают: Yandex-бот и гости: 48