Winapi 如何点击;菜单“;进程运行时在记事本中?

Winapi 如何点击;菜单“;进程运行时在记事本中?,winapi,hook,Winapi,Hook,目前我对记事本的菜单栏有一个问题,当我使用Spy++时,我意识到它只有Edit类,我可以得到Edit类的句柄。那么对于上面的菜单栏,我应该做什么才能在进程运行时操作它呢?谢谢你这很奇怪,因为当我在记事本上使用Spy++时,我看到一个主应用程序窗口,其中有两个子窗口:Edit和msctls\u statusbar32。你试过打开主应用程序窗口吗?@paddy我还没有用过GetMenu?为什么需要GetMenu?你能解释一下吗?我认为在处理通过钩子访问和修改另一个进程菜单的任务之前,最好先学习如何编

目前我对记事本的菜单栏有一个问题,当我使用Spy++时,我意识到它只有Edit类,我可以得到Edit类的句柄。那么对于上面的菜单栏,我应该做什么才能在进程运行时操作它呢?谢谢你

这很奇怪,因为当我在记事本上使用Spy++时,我看到一个主应用程序窗口,其中有两个子窗口:
Edit
msctls\u statusbar32
。你试过打开主应用程序窗口吗?@paddy我还没有用过GetMenu?为什么需要GetMenu?你能解释一下吗?我认为在处理通过钩子访问和修改另一个进程菜单的任务之前,最好先学习如何编写包含菜单的应用程序。窗口的菜单栏是窗口非客户端区域的一部分。它本身不是一个窗口类。它通过
humenu
参数附加在调用中(对于非子窗口)。虽然可以在关联窗口上调用
GetMenu
,以获取菜单的句柄,但不能从拥有该窗口的线程以外的线程对其进行修改@pad状态栏是底部的控件,用于显示行和列等信息。这和菜单无关,我知道。我没有声称状态栏与菜单相关。我的观点是反驳记事本只包含一个窗口的说法,这是错误的。然后我指导他们阅读如何访问应用程序窗口上的任何菜单,这基本上就是你所说的。关于在正确的线程上修改菜单,这似乎没有问题,因为问题被标记为与窗口挂钩相关。