powerofos 发表于 2011-6-24 20:25:21

$WS_EX_MDICHILD内嵌的窗口WIN7下还原最小化如何不先弹出显示

如题,WIN7下对有内嵌窗口的软件实施还原最小化,内嵌的窗口会先出现,主界面才以动画显示,如何实现同步?或者说不先显示内嵌窗口?

说明问题的例子:可以去看看 GUICtrlCreatePic 帮助中的 第二例.

先谢过.......

hzxymkb 发表于 2011-6-25 21:39:36

贴出源码再求助!

powerofos 发表于 2011-6-26 11:50:02

回复 2# hzxymkb


源码?看GUICtrlCreatePic 帮助中的 第二例.

帮组中很多内嵌窗口的例子,版主这么说,是因为我对问题表述得不清楚?

powerofos 发表于 2011-6-26 11:54:55

回复 2# hzxymkb

Example2()


;----- example 2
Func Example2()
    Local $msg
   
    $gui = GUICreate("test transparentpic", 200, 100)
    $pic = GUICreate("", 68, 71, 10, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui)
    GUICtrlCreatePic("..\GUI\merlin.gif", 0, 0, 0, 0)

    GUISetState(@SW_SHOW, $pic)
    GUISetState(@SW_SHOW, $gui)

    HotKeySet("{ESC}", "main")
    HotKeySet("{LEFT}", "left")
    HotKeySet("{RIGHT}", "right")
    HotKeySet("{DOWN}", "down")
    HotKeySet("{UP}", "up")
    $picPos = WinGetPos($pic)
    $guiPos = WinGetPos($gui)

    Do
      $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example2

Func main()
    $guiPos = WinGetPos($gui)
    WinMove($gui, "", $guiPos + 10, $guiPos + 10)
EndFunc   ;==>main

Func left()
    $picPos = WinGetPos($pic)
    WinMove($pic, "", $picPos - 10, $picPos)
EndFunc   ;==>left

Func right()
    $picPos = WinGetPos($pic)
    WinMove($pic, "", $picPos + 10, $picPos)
EndFunc   ;==>right

Func down()
    $picPos = WinGetPos($pic)
    WinMove($pic, "", $picPos, $picPos + 10)
EndFunc   ;==>down

Func up()
    $picPos = WinGetPos($pic)
    WinMove($pic, "", $picPos, $picPos - 10)
EndFunc   ;==>up
页: [1]
查看完整版本: $WS_EX_MDICHILD内嵌的窗口WIN7下还原最小化如何不先弹出显示