Рисование вне формы в любом месте экрана - VB

Узнай цену своей работы

Формулировка задачи:

Всем привет! Подскажите, пожалуйста, как оперативно в любой части экрана отрисовать определенную несложную фигуру. Конкретно хочу сделать программу которая каждые X миллисекунд будет отрисовывать посередине экрана прицел. Такого рода софт требуется игроманам, когда стандартные прицелы в игре разъезжаются или попросту плохо видны на объектах того же цвета что и сам прицел. В интернете находил конечно подобный софт.. но они обновляли прицел на экране на столько медленно, что даже на рабочем столе их не было толком видно, уж не говорю про то что в игре .. там его и вовсе становиться не видно. P.S.: Ввел в поисковике форума слово "графика" и "рисование".. вылезало всё что угодно кроме нужного =(

Решение задачи: «Рисование вне формы в любом месте экрана»

textual
Листинг программы
Private Type LOGBRUSH
        lbStyle As Long
        lbColor As Long
        lbHatch As Long
    End Type
    Private Declare Function ExtCreatePen Lib "gdi32" (ByVal dwPenStyle As Long, ByVal dwWidth As Long, lplb As LOGBRUSH, ByVal dwStyleCount As Long, lpStyle As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Const BS_SOLID = 0&
    Private Const PS_COSMETIC = 0&
    Private Const PS_USERSTYLE = 7&
    Private OldPen As Long
 
    Private Sub Form_Load()
    Dim lb As LOGBRUSH, Lengths(4) As Long
    lb.lbColor = 255
    lb.lbStyle = BS_SOLID
    Lengths(1) = 10
    Lengths(2) = 3
    Lengths(3) = 5
    Lengths(4) = 3
    OldPen = SelectObject(hdc, ExtCreatePen(PS_COSMETIC Or PS_USERSTYLE, 1, lb, 4, Lengths(1)))
    End Sub
 
    Private Sub Form_Unload(Cancel As Integer)
    DeleteObject SelectObject(hdc, OldPen)
    End Sub
 
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Line (0, 0)-(X, Y)
    End Sub

Оцени полезность:

13   голосов , оценка 4.308 из 5
Похожие ответы