注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

海天鹰

在大海和天空中翱翔,用锐利的目光审视着这个世界

 
 
 

日志

 
 

【转载】Gtk+2.0-----一个鼠标移动画矩形的简单实现  

2016-03-02 09:14:09|  分类: 电脑 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include <gtk/gtk.h>
typedef struct
{
    gint x;
    gint y;
}RECT_POINTER;
void draw_start(GtkWidget *draw,GdkEventButton *event,RECT_POINTER *rect)
{
    switch(event->button)
    {
        case 1:
            gdk_window_clear(draw->window);
            rect->x=(gint)event->x;
            rect->y=(gint)event->y;
            break;
    }
}
void draw_end(GtkWidget *draw,GdkEventButton *event,RECT_POINTER *rect)
{
    GdkGC *gc;
    GdkColor color;
    gint x,y,width,height;
    x=rect->x;
    y=rect->y;
    width=event->x-rect->x;
    height=event->y-rect->y;
    switch(event->button)
    {
        case 1:
            gc=gdk_gc_new(draw->window);
            color.blue=0;
            color.green=0;
            color.red=0xffff;
            gdk_gc_set_rgb_fg_color(gc,&color);
            if(rect->x>event->x)
            {
                x=event->x;
                width=rect->x-event->x;
            }
            if(rect->y>event->y)
            {
                y=event->y;
                height=rect->y-event->y;
            }
            gdk_draw_rectangle(draw->window,gc,TRUE,x,y,width,height);
            break;
    }
}
int main(int argc,char **argv)
{
    GtkWidget *win;
    GtkWidget *draw;
    RECT_POINTER rect;
    gtk_init(&argc,&argv);
    win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_position(GTK_WINDOW(win),GTK_WIN_POS_CENTER);
    g_signal_connect(G_OBJECT(win),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
    draw=gtk_drawing_area_new();
    gtk_container_add(GTK_CONTAINER(win),draw);
    gtk_widget_add_events(draw,GDK_BUTTON_PRESS_MASK);
    gtk_widget_add_events(draw,GDK_BUTTON_RELEASE_MASK);
    g_signal_connect(G_OBJECT(draw),"button_press_event",G_CALLBACK(draw_start),&rect);
    g_signal_connect(G_OBJECT(draw),"button_release_event",G_CALLBACK(draw_end),&rect);
    gtk_widget_show_all(win);
    gtk_main();
    return 0;
}

示例图片
Gtk+2.0-----一个鼠标移动画矩形的简单实现 - 枯龙吟 - 枯龙吟
  评论这张
 
阅读(21)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018