- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我维护一个使用 flash ocx 播放 SWF 文件的 C++ 应用程序。
当用户将鼠标悬停在 SWF 中的按钮上时,Flash 会在内部调用 WinAPI SetCursor
函数来设置 IDC_HAND
光标 - 当我监视 WinAPI 对光标的调用时,我可以看到-相关功能通过API Monitor V2 (rohitab.com) .但是,在我的例子中,光标没有改变,即保持 IDC_ARROW
。
应用程序本身根本不调用 SetCursor
。应用程序的窗口处理 WM_SETCURSOR
消息如下,即不恢复光标:
case WM_SETCURSOR:
{
static bool restoreCursor = false;
if (LOWORD(lParam) != HTCLIENT)
{
restoreCursor = true;
}
if (restoreCursor)
{
restoreCursor = false;
// DefWindowProc will set the cursor
break;
}
return 1;
}
谁能告诉我在这种情况下谁可以重置/更改光标形状?
更新:有趣的是我有 2 个相似的设置却产生了相反的结果。
我维护的应用程序实际上在“SysListView32”上安装了一个 WH_GETMESSAGE
Hook ,并启动了一个创建 Flash 播放器的线程。所以设置并不是那么简单。
但是,如果我只是创建一个简单的示例,基本上在 winmain 中创建一个播放器,那么上面的代码可以完美运行并且光标会发生变化。
所以在第一种情况下似乎确实有某些东西重置了光标状态。如何找出重置光标的原因?
最佳答案
好的,这个问题的真正答案是非 GUI 线程不能直接改变光标。查看页面底部的评论 http://msdn.microsoft.com/en-us/library/windows/desktop/ms648393%28v=vs.85%29.aspx
另一种解决方案可以绕过/ Hook SetCursor 函数到我们的函数,它只向 GUI 线程发送用户消息,发出设置光标的信号。
这两种解决方案都有其优点,当然也有缺点。
关于c++ - 除了 SetCursor,还有什么可以重置光标形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019802/
我有一个 JavaFX 应用程序,我似乎无法更改其中的 Cursor,希望有人可以看看我的代码,也许可以让我知道我做错了什么。 发生的事情的基本流程: 点击按钮 执行单独的任务以从 REST API
我正在测试 java 的一个新方面,尝试为我的游戏制作自定义光标,但似乎我遇到了一个问题,在我的代码中 setCursor(); 带来了出现编译器错误,因为它不被视为正确的代码段。我遵循了教程和不同的
下面我将光标设置为“手”,但是一旦我的工具提示启动,手就会返回到原始光标,直到我移动并重新激活悬停监听器。有谁知道为什么会发生这种情况吗? nodeB.hoverProperty().addListe
我创建了一个表,并在特定列上设置了游标。首次显示表格时光标正常显示,但如果表格模型发生变化,重新绘制表格,则不会按照代码显示光标,而是在所有列上显示默认光标。 尝试调试代码,对 jtable.setc
我维护一个使用 flash ocx 播放 SWF 文件的 C++ 应用程序。 当用户将鼠标悬停在 SWF 中的按钮上时,Flash 会在内部调用 WinAPI SetCursor 函数来设置 IDC_
好的,我在循环中设置了一个光标,它可以工作,但是当我移动光标时,它只是变回原来的样子。我用的是 win32 api,我用过 SetCursor(LoadCursor(hInstance, MAKEIN
全部, 我有一个带有 setFlags(Qt::ItemIsSelectable | Qt::ItemIsMovable) 的 QGraphicsEllipseItem。这允许我在 QGraphics
JPanel panel = new JPanel(null); panel.setSize(400, 400); panel.add(new JButton("Test")); panel.setC
我正在尝试使用 AlphabetIndexer 实现快速滚动条,但是当光标发生变化时,它不会刷新索引缓存。在我的 CursorAdapter 构造函数中,我调用了 setCursor(cursor)
我正在使用 SetCursor 将系统光标设置为我自己的图像。代码看起来像这样: // member on some class HCURSOR _cursor; // at init time _c
此示例草图展示了如何使用 setCursor() 方法重新定位光标。要移动光标,只需调用带有行和列位置的 setCursor()。例如,对于 2x16 显示: lcd.setCursor(0, 0);
此示例草图展示了如何使用 setCursor() 方法重新定位光标。要移动光标,只需调用带有行和列位置的 setCursor()。例如,对于 2x16 显示: lcd.setCursor(0, 0);
我正在尝试编写一个快速简单的 C++ 程序,将光标图标更改为目录中的自定义图像。 Windows 开发中心似乎有 some fairly straightforward documentation o
您好,我使用以下代码构建了一个对话框,可以从我的通话记录中选择一个联系人,但它只显示每个项目中的电话号码。我如何更改它以在每个项目中显示“联系人姓名”+“电话号码”? 我试过了,但 builder.s
在处理 WM_SETCURSOR 窗口消息时,我将 SetCursor 调用到某个光标。如果我将光标设置为与它不同的东西,它会等到鼠标通过移动或单击获得输入以实际设置它。 有没有办法解决这个问题,使光
本文整理了Java中com.koolearn.klibrary.text.view.ZLTextWordCursor.setCursor()方法的一些代码示例,展示了ZLTextWordCursor.
在我的应用程序中,我有 Screen.Cursor := crHourGlass; Application.ProcessMessages; try ... finally Screen.Curs
我是一名优秀的程序员,十分优秀!