首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改axShockwaveFlash的光标?

如何更改axShockwaveFlash的光标?
EN

Stack Overflow用户
提问于 2017-09-02 21:43:56
回答 1查看 111关注 0票数 2

我想把光标换成黑色。我搜索了很多网站,最后得到了一些答案,但它们不适用于axShockwaveFlash。我有这个:

代码语言:javascript
复制
Cursor = new Cursor(@"PathToCurFile");

它只更改窗体的光标,但我想更改控件的鼠标。我尝试了另一种选择:

代码语言:javascript
复制
Cursor.Override = Cursor;

我想这没什么用。所以我试了一下:

代码语言:javascript
复制
axShockwaveFlash1.Cursor = new Cursor(@"PathToCurFile");

再说一遍,它什么也不做。有人能告诉我如何改变光标的颜色吗?

Edit1:我试着在上面贴上一个隐形标签.确实改变了鼠标,但我不能点击游戏,所以我尝试把点击传递给AxShockwaveFalsh,我可以点击等,但光标恢复正常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-06 01:27:12

您将需要使用Win32 API在较低级别执行此操作。以下是代码:

代码语言:javascript
复制
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;

using System.Runtime.InteropServices;
public class Form1
{
    [DllImport("user32.dll")]
    public static extern IntPtr SetCursor(IntPtr hCursor);

    [DllImport("user32.dll")]
    private static extern IntPtr LoadCursorFromFile(string lpFileName);

    [DllImport("user32.dll")]
    private static extern bool SetSystemCursor(IntPtr hCursor, int id);

    private const uint OCR_NORMAL = 32512;

    static Cursor ColoredCursor;

    public Form1()
    {
        this.Load += Form1_Load;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        this.CenterToScreen();
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        IntPtr cursor = LoadCursorFromFile("C:\\Whatever\\Whatever\\example.cur");
        bool ret_val = SetSystemCursor(cursor, OCR_NORMAL);
    }
}

我建议更改axShockwaveFlash1控件MouseEnter和MouseLeave事件中的游标,例如:

代码语言:javascript
复制
this.Controls["AxShockwaveFlashObject1"].MouseEnter +=Form1_MouseEnter;

如果没有这些事件,则将axShockwaveFlash1控件放置在PictureBox控件中,并使用其输入/输出鼠标事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46018476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档