Что нового

Нестандартный Progress. Требуется помощь

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
https://www.dropbox.com/s/pbjry4g0eyo0u48/Progress.png
Хочу сделать нестандартный прогресс бар. Чтобы на экране был только подобный прогресс, без фона, неактивный для нажатий.

Пока всё что придумал - покрошить приведенное выше изображение на 10 кадров и в случае необходимости включать тот или иной кадр.

Прочитал 12 страниц с заголовками тем данного раздела, но других подходящих вариантов не нашел.

Быть может кто-нибудь знает как сделать подобный прогресс бар, желательно вообще без использования сторонних картинок :smile:


Добавлено:
Сообщение автоматически объединено:

P.S. Сам прогресс бар - это дуга расположенная слева снизу. Градиент вверху предназначен для выбора цветов для каждого деления.
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Вам нужен GDIPlus:
Код:
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WinAPIEx.au3>

HotKeySet('{ESC}', 'Terminate')

$hGUI = GUICreate('', 120, 120, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
GUISetBkColor(0xABABAB)
GUISetState()
_WinAPI_SetLayeredWindowAttributes($hGUI, 0xABABAB, 0, $LWA_COLORKEY)
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hPenRed = _GDIPlus_BrushCreateSolid(0xFFFF0000)

Global $iXcoord = 0, $iYcoord = 0, $iWidth = 100, $iHeight = 100, $iSize = 30

For $i = 0 To 360 Step 30
	_DrawPie($i, 30)
	Sleep(1000)
Next
Func _DrawPie($iDegStart, $iDeg)
	_GDIPlus_GraphicsFillPie($hGraphic, $iXcoord, $iYcoord, $iWidth, $iHeight, $iDegStart, $iDeg, $hPenRed)
EndFunc

_GDIPlus_PenDispose($hPenRed)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()

Func Terminate()
    Exit
EndFunc


Здесь совсем простой пример, лучше создать полигон и заливать его, тогда можно делать сектора любой формы.
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Спасибо, буду разбираться :smile:
 
Верх