游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4429|回复: 8

自定义鼠标图形和GUI中的form问题

[复制链接]

5

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-9-20 22:41:00 | 显示全部楼层 |阅读模式
我自定义了一个鼠标图形用的是anim并屏蔽了系统自带的鼠标图形,还有一个gui中的form,问题是当我的鼠标移动到form上的时候,就卡住了,移动不到form上面去,只能在这个form边缘移动.

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-9-20 23:39:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

把鼠标控件加到最根的Control上面去,而不是Form中

5

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-9-21 01:01:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

没在form中呀,我是这样写的.

        TestObject()
        {
                               OnMouseMove     =MouseMoveProc;
                Form *form;
                               tex = CreateActiveTexture2D(L"res/cursor/arror.Anim");
                               tex->Loop=true;
                InitGUI(L"AquaGUI.HAC",NULL);                 
                Control+=form=new Form(0,0,384,224,L"Test Window");   
                form->Align=alCenter;
        }

void Draw()
{
    glDisable(GL_TEXTURE_2D);

    glBegin(GL_QUADS);
        glColor3f(1,0,0);glVertex2f(0,0);
        glColor3f(1,1,1);glVertex2f(640,0);
        glColor3f(0,0,1);glVertex2f(640,480);
        glColor3f(0,0,0);glVertex2f(0,480);
    glEnd();

    tex->Draw(X,Y);
}

bool MouseMoveProc(int x,int y,uint32)
{
                X=x;
                Y=y;

                return(true);
}

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-9-21 09:21:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

这是因为当GUI用掉了这个事件后,主流程的不会被处理。

你在流程对象内建立一个函数,这样写:

bool Proc_MouseMove(int x,int y,unsigned __int32 key)
{
X=x;
Y=y;

return Control.Proc_MouseMove(x,y,key);
}

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-9-21 09:22:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

记住把你原来的MouseMoveProc删掉

5

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-9-21 10:59:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

这样是可以了,但是鼠标移动到form上,就被form遮挡住了,如何让鼠标在最上层?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-9-21 18:22:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

把鼠标绘制从Draw()移到LastlyDraw()中

Draw()是在所有控件绘制之前之前绘制
LastlyDraw()是在所有控件绘制之后绘制

5

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-9-21 23:05:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

哈哈,搞定,谢谢!

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-9-21 23:49:00 | 显示全部楼层

Re:自定义鼠标图形和GUI中的form问题

未来会直接提供自定义鼠标光标,就不用这么麻烦了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-24 12:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表