找回密码
 加入
搜索
楼主: imutraveler

[系统综合] 【已解决】WM_Notify的某个Case中嵌套While 1程序假死问题

  [复制链接]
发表于 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
 楼主| 发表于 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不能被不同控件 调用??
发表于 2016-9-29 19:35:16 | 显示全部楼层
回复  chzj589


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


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

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

主程序放在函数中,调用函数 ,为什么要这么做呢?
这个我也不知道,在我自己的代码多次调试中,感觉程序会好一点。
 楼主| 发表于 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上面, 都可以执行。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 21:10 , Processed in 0.070595 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表