我是靠谱客的博主 执着抽屉,最近开发中收集的这篇文章主要介绍GTK 隐藏鼠标,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

GTK 隐藏鼠标

GTK 2010-03-12 19:03:15 阅读104 评论0   字号:   订阅

GTK没有提供隐藏鼠标的API,那还有一个取巧的方法:
新建一个 GdkBitmap,其中只包含有一个透明的象素,用这个GdkBitmap来生成一个GdkCursor,设置光标。

 

一 首先写个方法
void gtk_set_invisible_cursor (GdkWindow *window){
    GdkBitmap *bitmap;
    GdkCursor *cursor;
    GdkColor useless;
    char invisible_cursor_bits[] = { 0x0 };   
    useless.red = useless.green = useless.blue = 0;
    useless.pixel = 0;
    
    bitmap = gdk_bitmap_create_from_data (window,invisible_cursor_bits,1, 1);

    cursor = gdk_cursor_new_from_pixmap (bitmap, bitmap,&useless,&useless, 0, 0);
   
    gdk_window_set_cursor (window, cursor);

    gdk_cursor_unref (cursor);
    g_object_unref (G_OBJECT (bitmap));
}

二 调用该方法

.  .  .
public_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
.  .  .
gtk_widget_show_all(public_window);

GdkWindow *gdkwindow = NULL;
gdkwindow = public_window->window;
gtk_set_invisible_cursor(gdkwindow);

OK

来至:http://jasy.ice.blog.163.com/blog/static/8843073020102127315367/


另外:

mplayer源码中有隐藏鼠标的。
代码:
   
   
void vo_hidecursor(Display * disp, Window win)
{
Cursor no_ptr;
Pixmap bm_no;
XColor black, dummy;
Colormap colormap;
static char bm_no_data[] = { 0, 0, 0, 0, 0, 0, 0, 0 };

if (WinID == 0)
return; // do not hide, if we're playing at rootwin

colormap = DefaultColormap(disp, DefaultScreen(disp));
if ( !XAllocNamedColor(disp, colormap, "black", &black, &dummy) )
{
return; // color alloc failed, give up
}
bm_no = XCreateBitmapFromData(disp, win, bm_no_data, 8, 8);
no_ptr = XCreatePixmapCursor(disp, bm_no, bm_no, &black, &black, 0, 0);
XDefineCursor(disp, win, no_ptr);
XFreeCursor(disp, no_ptr);
if (bm_no != None)
XFreePixmap(disp, bm_no);
XFreeColors(disp,colormap,&black.pixel,1,0);
}

来至:http://www.linuxsir.org/bbs/thread206408.html

最后

以上就是执着抽屉为你收集整理的GTK 隐藏鼠标的全部内容,希望文章能够帮你解决GTK 隐藏鼠标所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部