escortmnm 发表于 2011-2-24 21:37:09

在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):}

escortmnm 发表于 2011-2-24 21:42:17

我在论坛搜索了一下,发现有人问过类似的问题,也是graphic被盖住,可是也每人解决掉。
http://www.autoitx.com/forum.php?mod=viewthread&tid=20456&highlight=Graphic

yhxhappy 发表于 2011-2-24 21:53:07

我也遇到过类似问题,如果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

水木子 发表于 2011-2-24 22:00:19

是这样吗?#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

yhxhappy 发表于 2011-2-24 22:33:18

原来可以这样啊,改一下顺序就好了。学习了

escortmnm 发表于 2011-2-25 20:34:30

回复 4# 水木子
这样做确实是一个办法,非常感谢您的帮助。
这样做可能还有点不足,我想切换第二个标签的时候红线不显示,办法我倒是知道,在切换标签的时候让红线隐藏。
不知道还有没有更好的办法。

netegg 发表于 2011-3-1 18:57:18

本帖最后由 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

escortmnm 发表于 2011-3-4 12:02:18

回复 7# netegg
这个方法好像也不行,你可以测试一下,来回切换一下标签看看就知道了。

最终我是通过创建pic控件加载图像实现的。
页: [1]
查看完整版本: 在tab页面内使用Graphic画图,不能正常显示在tab页面上方