概述
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));
}
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);
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 隐藏鼠标所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复