chzj589 发表于 2016-9-29 14:26:26

回复 15# imutraveler
今天再看了一下,感觉:开始:创建程序主窗口再加上:

Form1()
While 1
   Sleep(1000)
WEnd
Func Form1()
        ;======================== ;;; 开始:创建程序主窗口 ;;; ========================
省略-----

        Call("ShowItems")
EndFunc   ;==>Form1
这样会更顺畅。
把:
           ;创建 TreeView 右键菜单

        Local Enum $TreeEdit = 1000, $TreeDelete
        Local $TreeContext = _GUICtrlMenu_CreatePopup()
        _GUICtrlMenu_InsertMenuItem($TreeContext, 0, "修改分组", $TreeEdit)
        _GUICtrlMenu_InsertMenuItem($TreeContext, 1, "")
        _GUICtrlMenu_InsertMenuItem($TreeContext, 2, "删除分组", $TreeDelete)
移到
Switch _GUICtrlMenu_TrackPopupMenu($TreeContext, $hWndFrom, -1, -1, 1, 1, 2)
上面。
删除:
While 1
   ;;
WEnd

imutraveler 发表于 2016-9-29 18:00:53

本帖最后由 imutraveler 于 2016-9-29 18:02 编辑

回复 16# chzj589


    真是非常感谢你!我已经在while 1中加了sleep(500),否则CPU占用会到28%
   
    有2点,1. 主程序放在函数中,调用函数 ,不是一样的效果?为什么要这么做呢?
               2. 你的意思是,把创建右键菜单的代码,放在 TreeView 的Case $NM_RCLICK 右键点击事件里?

   还发现了新的BUG,是关于 _GUIImageList_Create()的,

   程序里,使用该UDF 创建了图标控件,给TreeView使用,,我后来加了一句_GUICtrlListView_SetImageList($ListView, $hImage, 1)在129行,让ListView也使用这些图标。

    到这里问题就出现了,只要让ListView使用图标,TreeView的图标就出问题,点击和非点击2中状态的图标会重叠,而不是刷新!只要注释掉 129行,就好了,

    难道同一个imagelist不能被不同控件 调用??

chzj589 发表于 2016-9-29 19:35:16

回复chzj589


    真是非常感谢你!我已经在while 1中加了sleep(500),否则CPU占用会到28%
   
...
imutraveler 发表于 2016-9-29 18:00 http://www.autoitx.com/images/common/back.gif

如果在 开始:创建程序主窗口前加上:

Form1()
While 1
   Sleep(1000)
WEnd
Func Form1()
创建右键菜单的代码,必需放在 TreeView 的Case $NM_RCLICK 右键点击事件里,
否则右键菜单不能显示。

主程序放在函数中,调用函数 ,为什么要这么做呢?
这个我也不知道,在我自己的代码多次调试中,感觉程序会好一点。

imutraveler 发表于 2016-9-29 20:32:01

本帖最后由 imutraveler 于 2016-9-29 20:33 编辑

回复 18# chzj589


    好吧,目前程序中,右键菜单的代码在主程序的GUI部分,
    而 Switch _GUICtrlMenu_TrackPopupMenu($TreeContext, $hWndFrom, -1, -1, 1, 1, 2)在TreeView 的Case $NM_RCLICK 右键事件中!
    貌似也没问题!

    试了一下,把右键菜单代码放到这个Switch上面, 都可以执行。
页: 1 [2]
查看完整版本: 【已解决】WM_Notify的某个Case中嵌套While 1程序假死问题