在tab页面内使用Graphic画图,不能正常显示在tab页面上方
如图所示:我希望用guicreateGraphic创建的图形显示在tabitem页面的上面,但是按照代码中创建的Graphic确被tab页面盖住。
请各位大侠帮帮忙,看看如何让解决。
我使用的代码如下:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
Global $form1 = GUICreate("测试", 346, 332, 350, 211)
Global $Tab = GUICtrlCreateTab(7, 4, 320, 290)
Global $Tab1 = GUICtrlCreateTabItem("基本属性")
Global $Graphic1 = GUICtrlCreateGraphic(20, 85, 305, 12)
GUICtrlSetGraphic($Graphic1, $GUI_GR_COLOR, 0xff0000,0x000000)
GUICtrlSetGraphic($Graphic1, $GUI_GR_LINE, 320,0)
Global $Tab2 = GUICtrlCreateTabItem("高级属性")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
{:face (270):} 我在论坛搜索了一下,发现有人问过类似的问题,也是graphic被盖住,可是也每人解决掉。
http://www.autoitx.com/forum.php?mod=viewthread&tid=20456&highlight=Graphic 我也遇到过类似问题,如果Graphic叠放在别的控件上面就会显示不出来。也不知道什么解决
但如果LZ只是想画根红线,倒可以用别的控件代替#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
Global $form1 = GUICreate("测试", 346, 332, 350, 211)
Global $Tab = GUICtrlCreateTab(7, 4, 320, 290)
Global $Tab1 = GUICtrlCreateTabItem("基本属性")
GUICtrlCreateLabel("", 20, 85, 305, 1)
GUICtrlSetBkColor(-1, 0xff0000)
Global $Tab2 = GUICtrlCreateTabItem("高级属性")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 是这样吗?#include <TabConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Global $form1 = GUICreate("测试", 346, 332, 350, 211)
Global $Graphic1 = GUICtrlCreateGraphic(20, 85, 305, 12)
GUICtrlSetGraphic($Graphic1, $GUI_GR_COLOR, 0xff0000, 0x000000)
GUICtrlSetGraphic($Graphic1, $GUI_GR_LINE, 320, 0)
Global $Tab = GUICtrlCreateTab(7, 4, 320, 290)
Global $Tab1 = GUICtrlCreateTabItem("基本属性")
Global $Tab2 = GUICtrlCreateTabItem("高级属性")
GUICtrlCreateTabItem("")
GUISetState()
Do
Until GUIGetMsg() = -3 原来可以这样啊,改一下顺序就好了。学习了 回复 4# 水木子
这样做确实是一个办法,非常感谢您的帮助。
这样做可能还有点不足,我想切换第二个标签的时候红线不显示,办法我倒是知道,在切换标签的时候让红线隐藏。
不知道还有没有更好的办法。 本帖最后由 netegg 于 2011-3-1 19:09 编辑
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiIPAddress.au3>
#include <StaticConstants.au3>
Example()
Func Example()
Local $hGUI, $hGUI_Child
Local $tab, $tab0, $tab1
Local $hIPAddress, $aMsg
$hGUI = GUICreate("IP Iab", 250, 180)
$hGUI_Child = GUICreate("", 180, 70, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $hGUI)
GUISetBkColor(0xFFffff, $hGUI_Child)
Global $Graphic1 = GUICtrlCreateGraphic(10, 10, 305, 30)
GUICtrlSetGraphic($Graphic1, $GUI_GR_COLOR, 0xff0000, 0x000000)
GUICtrlSetGraphic($Graphic1, $GUI_GR_LINE, 320, 0)
GUISetState(@SW_HIDE)
GUISwitch($hGUI)
$tab = GUICtrlCreateTab(10, 10, 200, 100)
$tab0 = GUICtrlCreateTabItem("tab0")
GUICtrlCreateButton("OK", 20, 50, 50, 20)
GUICtrlCreateInput("", 80, 50, 70, 20)
$tab1 = GUICtrlCreateTabItem("tab1")
GUICtrlCreateTabItem("")
GUISetState()
While 1
$aMsg = GUIGetMsg(1)
Switch $aMsg
Case $GUI_EVENT_CLOSE
Exit
Case $tab
Switch GUICtrlRead($tab)
Case 0
GUISetState(@SW_HIDE, $hGUI_Child)
Case 1
GUISetState(@SW_SHOW, $hGUI_Child)
EndSwitch
EndSwitch
WEnd
EndFunc ;==>Example
回复 7# netegg
这个方法好像也不行,你可以测试一下,来回切换一下标签看看就知道了。
最终我是通过创建pic控件加载图像实现的。
页:
[1]