User interface 如何将排水沟网覆盖创建为GUI?
我想要一个带有96x96像素排水沟网和一个小排水沟边框(可能是一个像素)的全屏GUI。GUI应该是透明的覆盖层(只显示排水沟网) 为什么??我经常使用精灵表图像(创建、调整大小或重新排列它们)。我没有支持排水沟线作为帮助视图的软件。这将是伟大的,有一个快速准确的调整 我使用全屏GUI作为User interface 如何将排水沟网覆盖创建为GUI?,user-interface,autoit,sprite-sheet,User Interface,Autoit,Sprite Sheet,我想要一个带有96x96像素排水沟网和一个小排水沟边框(可能是一个像素)的全屏GUI。GUI应该是透明的覆盖层(只显示排水沟网) 为什么??我经常使用精灵表图像(创建、调整大小或重新排列它们)。我没有支持排水沟线作为帮助视图的软件。这将是伟大的,有一个快速准确的调整 我使用全屏GUI作为$WS\u弹出窗口(无边框)窗口。边沟是具有特定背景颜色的标签。我必须手动创建这些,所以我希望您有更好的想法 到目前为止,我的代码是: #include <GuiConstantsEx.au3> #i
$WS\u弹出窗口
(无边框)窗口。边沟是具有特定背景颜色的标签。我必须手动创建这些,所以我希望您有更好的想法
到目前为止,我的代码是:
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
$iGuiW = @DesktopWidth
$iGuiH = @DesktopHeight
$iGuiGutterSize = 96
$hColor = 0x00FF00
$hGui = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW + $WS_EX_TOPMOST)
; From left to right.
GUICtrlCreateLabel("", 0, 0, $iGuiW, 1)
GUICtrlSetBkColor(-1, $hColor)
GUICtrlCreateLabel("", 0, $iGuiGutterSize, $iGuiW, 1)
GUICtrlSetBkColor(-1, $hColor)
GUICtrlCreateLabel("", 0, $iGuiGutterSize * 2, $iGuiW, 1)
GUICtrlSetBkColor(-1, $hColor)
GUICtrlCreateLabel("", 0, $iGuiGutterSize * 3, $iGuiW, 1)
GUICtrlSetBkColor(-1, $hColor)
; From top to bottom.
GUICtrlCreateLabel("", 0, 0, 1, $iGuiH)
GUICtrlSetBkColor(-1, $hColor)
GUICtrlCreateLabel("", $iGuiGutterSize, 0, 1, $iGuiH)
GUICtrlSetBkColor(-1, $hColor)
GUICtrlCreateLabel("", $iGuiGutterSize * 2, 0, 1, $iGuiH)
GUICtrlSetBkColor(-1, $hColor)
GUICtrlCreateLabel("", $iGuiGutterSize * 3, 0, 1, $iGuiH)
GUICtrlSetBkColor(-1, $hColor)
GUISetState( @SW_SHOW, $hGui )
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
GUIDelete($hGui)
Exit
EndSwitch
WEnd
#包括
#包括
$iGuiW=@DesktopWidth
$iGuiH=@DesktopHeight
$iGutterSize=96
$hColor=0x00FF00
$hGui=GUICreate(“,@DesktopWidth,@DesktopHeight,0,0,$WS\u POPUP,$WS\u EX\u TOOLWINDOW+$WS\u EX\u topmest)
; 从左到右。
GUICtrlCreateLabel(“”,0,0,$iGuiW,1)
GUICTRLESTBKCOLOR(-1,$hColor)
GUICtrlCreateLabel(“”,0,$iGutterSize,$iGuiW,1)
GUICTRLESTBKCOLOR(-1,$hColor)
GUICtrlCreateLabel(“”,0,$iGutterSize*2,$iGuiW,1)
GUICTRLESTBKCOLOR(-1,$hColor)
GUICtrlCreateLabel(“”,0,$iGutterSize*3,$iGuiW,1)
GUICTRLESTBKCOLOR(-1,$hColor)
; 自上而下。
GUICtrlCreateLabel(“”,0,0,1,$iGuiH)
GUICTRLESTBKCOLOR(-1,$hColor)
GUICtrlCreateLabel(“,$iGutterSize,0,1,$iGuiH)
GUICTRLESTBKCOLOR(-1,$hColor)
GUICtrlCreateLabel(“,$iGutterSize*2,0,1,$iGuiH)
GUICTRLESTBKCOLOR(-1,$hColor)
GUICtrlCreateLabel(“,$iGutterSize*3,0,1,$iGuiH)
GUICTRLESTBKCOLOR(-1,$hColor)
GUISetState(@SW_SHOW,$hGui)
而1
开关GUIGetMsg()
案例$GUI\u事件\u结束
指南(hGui)
出口
终端开关
温德
是的,它类似于网格设计,但只是边界作为线。注意: 不太清楚我的建议是否符合你的想象,但我猜你的意思是网格设计。正如您所提到的,GUI就像一个覆盖层(透明),只有网格线是可见的 解决方案在
\u createGridStructure()
函数中,该函数使用一些WinAPI函数来提供这样的网格(矩形设计)。我在一个单独的函数中提取了您的guidelet($hGui)
和Exit
。我还提取了一个函数中的GUI创建部分,使其更加灵活
方法:
#包含一次
#包括
#包括
#包括
全局$iGuiWidth=@DesktopWidth
全局$iGuiHeight=@DesktopHeight
全球$iGridSize=96;如果需要,请更改大小
全局$vGridColor=0x00FF00;如果需要,请更改网格线颜色
全球$hMainGui
Func_createGui()
$hMainGui=GUICreate(“”,$iGuiWidth,$iGuiHeight,0,0,$WS_弹出窗口,$WS_EX_工具窗口+$WS_EX_顶部)
GuisebkColor($vGridColor)
GUISetState(@SW_SHOW,$hMainGui)
EndFunc
Func_createGridStructure()
本地$iGridLinesX=地板($iguidth/$iGridSize)
本地$iGridLinesY=地板($iGuiHeight/$iGridSize)
本地$hMainRegion=\u WinAPI\u CreateRectRgn(0,0,0,0)
对于$i=0到$iGridLinesX步骤1
$hRegion=\u WinAPI\u CreateRectRgn($i*$iGridSize,0,($i*$iGridSize)+1,$iguiHight)
_WinAPI_CombineRgn($hMainRegion,$hRegion,$hMainRegion,2)
_WinAPI_DeleteObject($hRegion)
下一个
对于$i=0到$iGridLinesY步骤1
$hRegion=\u WinAPI\u CreateRectRgn(0,$i*$iGridSize,$igiWidth,($i*$iGridSize)+1)
_WinAPI_CombineRgn($hMainRegion,$hRegion,$hMainRegion,2)
_WinAPI_DeleteObject($hRegion)
下一个
_WinAPI_SetWindowRgn($hMainGui,$hMainRegion)
EndFunc
Func_disposeAndExit()
GUIDelete($hMainGui)
出口
EndFunc
_createGui()
_createGridStructure()
而1
开关GUIGetMsg()
案例$GUI\u事件\u结束
_disposeAndExit()
终端开关
温德
现在,如果切换显示器分辨率,则无需手动调整网格线。注意: 不太清楚我的建议是否符合你的想象,但我猜你的意思是网格设计。正如您所提到的,GUI就像一个覆盖层(透明),只有网格线是可见的 解决方案在
\u createGridStructure()
函数中,该函数使用一些WinAPI函数来提供这样的网格(矩形设计)。我在一个单独的函数中提取了您的guidelet($hGui)
和Exit
。我还提取了一个函数中的GUI创建部分,使其更加灵活
方法:
#包含一次
#包括
#包括
#包括
全局$iGuiWidth=@DesktopWidth
全局$iGuiHeight=@DesktopHeight
全球$iGridSize=96;如果需要,请更改大小
全局$vGridColor=0x00FF00;如果需要,请更改网格线颜色
全球$hMainGui
Func_createGui()
$hMainGui=GUICreate(“”,$iGuiWidth,$iGuiHeight,0,0,$WS_弹出窗口,$WS_EX_工具窗口+$WS_EX_顶部)
GuisebkColor($vGridColor)
GUISetState(@SW_SHOW,$hMainGui)
EndFunc
Func_createGridStructure()
本地$iGridLinesX=地板($iguidth/$iGridSize)
本地$iGridLinesY=地板($iGuiHeight/$iGridSize)
本地$hMainRegion=\u WinAPI\u CreateRectRgn(0,0,0,0)
对于$i=0到$iGridLinesX步骤1
$hRegion=\u WinAPI\u CreateRectRgn($i*$iGridSize,0,($i*$iGridSize)+1,$iguiHight)
_WinAPI_CombineRgn($hMainRegion,$hRegion,$hMainRegion,2)
_WinAPI_DeleteObject($hRegion)
下一个
对于$i=0到$iGridLinesY步骤1
$hRegion=\u WinAPI\u CreateRectRgn(0,$i*$iGridSize,$igiWidth,($i*$iGridSize)+1)
_WinAPI_CombineRgn($hMainRegion,$hRegion,$hMainRegion,2)