gpt4 book ai didi

C++ CLI GUI 事件处理

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:58 24 4
gpt4 key购买 nike

我正在开发一个 C++ CLI 应用程序,但在处理事件时遇到了一些困难。我想知道是否可以在单击鼠标按钮时触发事件。例如,我想检查鼠标是否已经移动到下一个方 block ,只有当他们点击鼠标时。这意味着如果他们点击方 block 1,他们应该能够按住该点击并移动方 block 2 和我的程序认识到这一点。

我在鼠标上运行了很多不同的事件,包括“点击”事件,但是当按下按钮时,悬停、鼠标进入或鼠标按下事件都不会被触发。 “MouseClick”事件,其作用相同。我尝试只使用 mouseDown 事件,但这不会触发另一个 mouseDown 事件、鼠标进入或悬停事件。

缺少检查鼠标位置我不知道我能做什么。我不想进行鼠标位置检查。

如果有人有任何想法,他们将不胜感激。

最佳答案

很明显,您需要注意 MouseMove 事件,这样您就可以看到鼠标移到了另一个方 block 中。大致:

    void panel1_MouseMove(Object^ sender, MouseEventArgs^ e) {
if ((e->Button & System::Windows::Forms::MouseButtons::Left) ==
System::Windows::Forms::MouseButtons::Left) {
int square = MapPosToSquare(e->Location);
if (square != currentSquare) {
currentSquare = square;
OnSquareClicked(currentSquare);
}
}
}

如果这些“方 block ”实际上是控件,那么您就会遇到不同的问题。您必须在 MouseDown 事件处理程序中将控件的 Capture 属性设置为 false,这样它就不会捕获鼠标。

关于C++ CLI GUI 事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com