我如何确定滚动按钮是被按下还是被压下,如果是,就压下它 ! - 页 4

 
Zhunko:

如果Leo很细心的话,这个库的链接是我的WinUser32.mqh。它有所有需要的命令和功能。没有必要输出任何东西。


33017 - 删除/设置自动滚动。
还是别的什么?
 
LEOK:

33017 - 删除/设置自动滚动。
还是别的什么?
Spy++是一种帮助。
直接从源头获取信息。
 
LEOK:

33017 - 移除/设置自动滚动; 或其他?
为了控制,是的。对于状态,你需要图形属性
 

我个人仍然不明白使用TB_GETSTATE的问题在哪里。我们刚才说的是什么窗口活动?这是一个普通的窗口信息,发送给控件,就像WM_GETTEXT、BM_GETSTATE等。一直使用这些信息--完全没有问题。而应用程序以同样的方式接收来自控件的信息与这些信息。

而且,窗口是否处于活动状态并不重要。

 
Meat:

就个人而言,我仍然不明白使用TB_GETSTATE的问题在哪里。我们刚才说的是什么窗口活动?这是一个普通的窗口信息,发送给控件,就像WM_GETTEXT、BM_GETSTATE等。一直使用这些信息--完全没有问题。而应用程序以同样的方式接收来自控件的信息与这些信息。

窗口是否处于活动状态其实并不重要。

这个面板只对活动图表起作用。如果在发送信息前的那一刻,窗口活动发生变化,会发生什么?另一个图表窗口将被激活。因此,你会得到其他窗口的按钮位置,而不是你自己的。在这种情况下,你如何使你想获得按钮位置的窗口的活动与要发送的信息同步?如果不这样做,就会出现很多意想不到的错误。即使使用DLL,这也不明显。

通过图形属性 来获得它更容易,更可靠。

 
Zhunko:

这个面板只对活动时间表起作用。如果窗口活动在信息发送的前一刻发生变化,会发生什么?另一个图形窗口成为活动状态。相应地,你会得到另一个窗口的按钮位置,而不是你自己的。在这种情况下,你如何使你想获得按钮位置的窗口的活动与要发送的信息同步?如果不这样做,就会出现很多意想不到的错误。即使使用DLL,这也不明显。

通过图形属性来获得它更容易,更可靠。


请给我一个如何使用的例子(代码):如何通过图的属性 得到它?
 
LEOK:
请给我一个如何使用的例子(代码):如何通过图形属性得到这个?
模仿命令,打开图表属性
等待模式化的对话框。
找到它。
找到所需的元素。
关闭模式对话框。

你有什么问题...
 
Zhunko:

这个面板只对活动时间表起作用。如果窗口活动在信息发送的前一刻发生变化,会发生什么?另一个图形窗口成为活动状态。相应地,你会得到另一个窗口的按钮位置,而不是你自己的。在这种情况下,你如何使你想获得按钮位置的窗口的活动与要发送的信息同步?如果不这样做,就会出现很多意想不到的错误。即使使用DLL,这也不明显。

通过图表属性获取更容易、更可靠。

那么,你可以先强制激活所需的图表。而且,为了保证可靠性,还要检查主终端窗口的名称。它应该包含所需图表的名称。然而,我并不坚持,也许你的版本还是更方便,因为你不需要切换图表。但图表属性 窗口会闪烁 :)

 
Meat:

那么,你可以先强行激活所需的图表。还要检查主终端窗口的名称以确定。它应该包含所需图表的名称。然而,我并不坚持,可能,你的版本还是更方便,因为不需要切换图表。但图表属性的窗口会弹出:)。

当然,这是有可能激活的。但如何实现同步?窗口活动可以由任何程序或用户自己在任何时候停用。如何才能解决这个问题?这是一种非常不方便的方式。

是的,窗户会闪烁,但非常快。如果电脑不忙,几乎感觉不到它的存在。

克。

给我一个用例(代码):你怎么能通过图的属性得到这个?

在我的WinUser32.mqh中查看。那里有指令代码。你不必在Spy中寻找。你已经知道了其他的事情。

安德烈写得很正确。

jartmailru:
模拟打开图表属性的命令。
等待模式化的对话框。
找到它。
找到所需的项目。
关闭模态对话框。
只是你必须在找到该物品之前切换标签。
 
Meat:

那么,你可以先强行激活所需的图表。还要检查主终端窗口的名称以确定。它应该包含所需图表的名称。然而,我并不坚持,可能,你的版本还是更方便,因为不需要切换图表。但图表属性窗口会闪烁 :)

MT将更新按钮状态 的速度是未知的。因此,最好在激活窗口和读取状态之间插入一个暂停,在某些情况下,暂停是不够的,程序逻辑会失败。因此,瓦迪姆所做的事情在某种意义上是一种 "工业方式"。