Решетка - линейка
Решетка - линейка для дизайна веб и графики.
Данная программа позволяет вам контролировать и корректировать пропорции и размеры в вашем дизайнерском проекте.
Программа создает изменяемую по размеру прозрачную решетку, которая налагается сверху вашего проекта.
Отображается размер внешней рамки и внутренней ячейки в пикселях.
Запоминает последний размер.
Размер
exe файла - 100КБ
Скачать
архив
Код для версии PureBasic 4.30 :
#Window_0 = 1
#True = 1
#False = 0
#Tex = 2
#wid = 3
#Font_Text_0 = 4
Global hwnd.l
CatchImage(1, ?Im1, ?Im1End -?Im1)
CatchImage(2, ?Im2, ?Im2End -?Im2)
CatchImage(3, ?Im3, ?Im3End -?Im3)
Procedure PaintWindowBackground()
Shared hBrush2Temp
ww.l = WindowWidth(#Window_0)
wh.l = WindowHeight(#Window_0)
hBmp.l = CreateImage(0, ww, wh)
hDC = StartDrawing( ImageOutput(0) )
Box( 0, 0, ww, 20, RGB(221, 222, 223))
DrawImage(ImageID(1), 3, 2 ,16, 16) ; лого
DrawImage(ImageID(2), ww-18, 2 ,16, 16) ; закрыть
DrawImage(ImageID(3), ww-35, 2 ,16, 16) ; информация
Line(0,0, ww, 0, RGB(128, 128, 128))
Line(0,19, ww, 0, RGB(128, 128, 128))
Line(0,0, 0, 19, RGB(128, 128, 128))
Line(ww-1,0, 0, 19, RGB(128, 128, 128))
Box( 0, 25, ww, wh-20, RGB(255, 0, 0))
Box( 1, 26, ww-2, wh-27, $fffffff )
FillRgn_( hDC, hRgn1, hBrush1 )
;Line( ww-15, 5, 10, 10, RGB(255, 0, 0)) ; закрыть
;Line( ww-15, 14, 10,-10, RGB(255, 0, 0)) ; закрыть
Line( ww-7, wh-2, 6,-6, RGB(255, 0, 0))
Line( ww-6, wh-2, 5,-5, RGB(255, 0, 0))
Line( ww-5, wh-2, 4,-4, RGB(255, 0, 0))
Line( ww-4, wh-2, 3,-3, RGB(255, 0, 0))
Line( ww-3, wh-2, 2,-2, RGB(255, 0, 0))
Line( ww-2, wh-2, 1,-1, RGB(255, 0, 0))
Line( ww/2, 26, 0, wh, $0000FF)
Line( 0, wh/2+12, ww, 0, $0000FF)
StopDrawing()
hBrush2.l = CreatePatternBrush_(hBmp)
SetClassLong_(hwnd, #GCL_HBRBACKGROUND, hBrush2)
SetWindowRgn_(hwnd, hRgn2, #True)
DeleteObject_( hBrush2Temp )
hBrush2Temp=hBrush2
EndProcedure
If OpenPreferences("met.pcs")
PreferenceGroup("размер окна")
xx.s=ReadPreferenceString("x", "")
yy.s=ReadPreferenceString("y", "")
ClosePreferences()
EndIf
ww.l = Val(xx)
wh.l = Val(yy)
hwnd = OpenWindow(#Window_0, 0, 0, ww, wh, "линейка", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
StickyWindow(#Window_0, 1) ; окно сверху
TextGadget(#Tex, 21, 3, 85, 15, "")
SetGadgetColor(#Tex, #PB_Gadget_FrontColor, RGB(54, 54, 54))
SetGadgetColor(#Tex, #PB_Gadget_BackColor,RGB(221, 222, 223))
TextGadget(#wid, 3, 26, 50, 14, " 200 x 90") ; текст малого окна
SetGadgetColor(#wid, #PB_Gadget_BackColor, $000000)
SetGadgetColor(#wid, #PB_Gadget_FrontColor, $101010)
SetGadgetFont(#wid, LoadFont(#Font_Text_0, "Arial", 8, 16))
If ww =0
ResizeWindow(#Window_0,#PB_Ignore,#PB_Ignore,401, 206)
EndIf
SetWindowLong_(WindowID(#Window_0),#GWL_EXSTYLE,GetWindowLong_(WindowID(#Window_0),#GWL_EXSTYLE)|$00080000)
SetLayeredWindowAttributes_(WindowID(#Window_0),0,0,1)
Repeat
EventID.l = WaitWindowEvent()
Window = EventWindow()
Gadget=EventGadget()
mx.l = WindowMouseX(#Window_0)
my.l = WindowMouseY(#Window_0)
SetGadgetText(#Tex, Str(WindowWidth(#Window_0)-1)+" x "+Str(WindowHeight(#Window_0)-26)+" пикс")
SetGadgetText(#wid, Str(WindowWidth(#Window_0)/2)+" x "+Str(WindowHeight(#Window_0)/2-13)) ; параметры малого окна
Select EventID
Case #WM_PAINT
PaintWindowBackground()
While WindowEvent() : Wend
Case #WM_LBUTTONDBLCLK
Case #WM_LBUTTONDOWN
; перетаскивание
If WindowMouseX(#Window_0) >= 0 And WindowMouseX(#Window_0) <= ww-45 And WindowMouseY(#Window_0) >= 0 And WindowMouseY(#Window_0) <= 20
ReleaseCapture_()
SendMessage_(hwnd, #WM_NCLBUTTONDOWN, #HTCAPTION, NULL)
EndIf
; закрыть
If ((mx > ww-20 And mx < ww-0) And (my > 3 And my < 20))
OpenPreferences("met.pcs")
PreferenceGroup("размер окна")
WritePreferenceString("x", Str(WindowWidth (#Window_0)) )
WritePreferenceString("y", Str(WindowHeight(#Window_0)) )
ClosePreferences()
EventID = #PB_Event_CloseWindow
EndIf
If ((mx > ww-30 And mx < ww-21) And (my > 3 And my < 20))
OpenWindow (888, 0, 0, 370, 120, "О программе", #PB_Window_SystemMenu|#PB_Window_ScreenCentered )
StickyWindow(888, 1) ; окно сверху
TextGadget(801, 110,10,100,20,"Решетка-Линейка")
TextGadget(802, 5,30,360,30,"Данная программа позволяет вам контролировать и корректировать пропорции и размеры в вашем дизайнерском проекте.")
TextGadget(803, 15,70,360,20,"Автор: Мирошниченко Олег")
TextGadget(804, 15,90,40,20,"Сайт:")
HyperLinkGadget(805, 55, 90, 150,15,"http://www.mirashic.narod.ru",RGB(255, 4, 0))
EndIf
; растягивать
If ((mx > ww-30 And mx < ww) And (my > wh-30 And my < wh))
ReleaseCapture_()
SendMessage_(hwnd, #WM_NCLBUTTONDOWN, #HTBOTTOMRIGHT , NULL)
EndIf
ww.l = WindowWidth(#Window_0)
wh.l = WindowHeight(#Window_0)
Case #PB_Event_Gadget
Select EventGadget()
Case 805
RunProgram("http://www.mirashic.narod.ru/")
EndSelect
EndSelect
If EventID = #PB_Event_CloseWindow
CloseWindow(Window) ; если много окон
EndIf
Until EventID=#PB_Event_CloseWindow And Window=#Window_0 ; если много окон
DataSection
Im1:
IncludeBinary "иконка.ico"
Im1End:
Im2:
IncludeBinary "close.ico"
Im2End:
Im3:
IncludeBinary "help.ico"
Im3End:
EndDataSection