03.04.2005, 13:15
общий
это ответ
Здравствуйте, Zdobnin_Pavel!
Примитивное сердечко из формы я сделал так.
Можно делать без файла (но мне для оаытов было удобно так).
Структура файла: первое число - кол-во точек в полигоне. Далее в столбик поочередно чередуются Х, У координаты каждой точки полигона, например
8
0
20
20
0
25
20
30
0
50
20
50
50
25
100
0
50
Увеличив кол-во точек добъешся плавности переходов. Можно задать функцию расчета точек (этого я не знаю! у по высшей математике 3).
УДАЧИ
Приложение:
Dim RGNC As Integer, RGN_API() As POINTAPIPrivate Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As LongPrivate Declare Function SetWindowRgn Lib "user32" (ByVal HWND As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As LongPrivate Type POINTAPI X As Long Y As LongEnd TypeSub LoadRGN(FileName As String, HWND As Long)Dim i As Integer, REGION As LongOpen FileName For Input As #1Line Input #1, a RGNC = a ReDim RGN_API(0 To RGNC - 1) As POINTAPI ‘Ïåðåîáúÿâëÿåì ìàññèâ Do While Not EOF(1) Line Input #1, a RGN_API(i).X = a Line Input #1, a RGN_API(i).Y = a i = i + 1 LoopClose #1REGION = CreatePolygonRgn(RGN_API(0), RGNC, 2) ‘Ñîçäà¸ì ðåãèîíSetWindowRgn HWND, REGION, True ‘Ïðèìåíÿåì ðåãèîí íà îáúåêòEnd SubPrivate Sub Command1_Click()LoadRGN "D:\aaa.txt", Form1.HWNDEnd Sub