Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› FloodFill в Visual Basic 6.0 |
Посл.ответ | Сообщение |
|
Создано: 22 апреля 2007 01:16 · Личное сообщение · #1 Кто знает как правильно пользоваться функцией FloodFill? Она вроде всё заливает нормально только вот почему когда сохраняешь залитый рисунок на нём заливки не видно? Я пишу так: Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long а потом так : FloodFill Picture1.hdc, X, Y, vbRed ![]() |
|
Создано: 22 апреля 2007 13:37 · Личное сообщение · #2 |
|
Создано: 22 апреля 2007 14:57 · Личное сообщение · #3 |
|
Создано: 22 апреля 2007 17:45 · Личное сообщение · #4 |
|
Создано: 22 апреля 2007 21:53 · Личное сообщение · #5 GPcH пишет: А что мешает делать заливку средствами VB? Например: Picture1.DrawWidth = 10000 Picture1.PSet (100, 100) Да нет, этож совсем другое. То что ты написал это просто жирная точка на всю Picture. А FloodFill используется для заливки области ограниченной определенным цветом, так сказать корявой области. Ну прям как в Paint, нарисовал какой-то корявый круг и залил его. ![]() |
|
Создано: 22 апреля 2007 22:35 · Личное сообщение · #6 Вот ответ: forum.codenet.ru/showthread.php?t=11046 Если же нужно заполнить стандартный объект то используй код: loc_404862: Me.ForeColor = RGB(CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255)))) loc_4048C4: Me.FillColor = RGB(CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255)))) loc_4048D5: Me.FillStyle = &H0 loc_404953: Me.Circle ((Rnd(Date) * CDbl(&H64)), (Rnd(Date) * CDbl(&H64))), (Rnd(Date) * CDbl(&H1E)), &H0 ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! ![]() |
|
Создано: 23 апреля 2007 01:02 · Личное сообщение · #7 vitalya2903 Когда AutoRedraw=false то заливка работает нормально но рисунок сохраняется как белый лист. Если ты сохраняешь рисунок через SavePicture, то нужно поставить AutoRedraw=true и передавать Image: SavePicture pictureBox.Image, "c:\file.bmp" когда в объекте Picture свойство AutoRedraw=true то рисунок сохраняется нормально а заливка не работает У меня работает, попробуй вызвать после рисования Refresh на PictureBox. Если не поможет, покажи код. ![]() |
|
Создано: 23 апреля 2007 16:02 · Личное сообщение · #8 |
|
Создано: 23 апреля 2007 18:52 · Личное сообщение · #9 GPcH пишет: loc_404862: Me.ForeColor = RGB(CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255)))) loc_4048C4: Me.FillColor = RGB(CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255))), CInt((Rnd(Date) * CDbl(255)))) loc_4048D5: Me.FillStyle = &H0 loc_404953: Me.Circle ((Rnd(Date) * CDbl(&H64)), (Rnd(Date) * CDbl(&H64))), (Rnd(Date) * CDbl(&H1E)), &H0 Спасибо, в быту пригодится ![]() Закрываю тему ![]() |
![]() |
eXeL@B —› Программирование —› FloodFill в Visual Basic 6.0 |
Эта тема закрыта. Ответы больше не принимаются. |