第一个IDL之图形用户界面window

随窗口大小变化,自动调整按钮位置到窗口中央。同时相应Click事件。其中btnAdd.bmp是放在工程目录中的bitmap图片16*16;相应主窗口大小变化 PRO mywindow_tlb,event widget_control,event.top,tlb_get_size = base_size ;print,base_size[0],'--',base_size[1] widget_control,event.top,get_uvalue = infoptr info = *infoptr;需要把指针转成数组 widget_control,info.btncontainer,xoffset = base_size[0]/2-11,yoffset = base_size[1]/2-11 widget_control,info.label1,set_value = 'Clicked!' widget_control,event.top,xsize = base_size[0],ysize = base_size[1] END ;清理过程 PRO MYWINDOW_CLEANUP,ID widget_control,id,get_uvalue = infoptr ptr_free,infoptr END ;相应click事件 PRO BTNCLICK,event widget_control,event.top,get_uvalue = infoptr info = *infoptr;需要把指针转成数组 widget_control,info.label1,set_value = 'Clicked!' END ;主过程 PRO MYWINDOW fullfile =ROUTINE_INFO('MYWINDOW',/SOURCE) RootDir = FILE_DIRNAME(fullfile.(1)) filename = filepath('bmpAdd.bmp',root_dir = RootDir) tlb = widget_base(/tlb_size_events) label1 = widget_label(tlb,value = 'begin...',xoffset = 0,yoffset = 50) btncontainer = widget_base(tlb,xsize = 22,ysize = 22,xoffset = 189,yoffset = 189) btn1 = widget_button(btncontainer,value = filename,xoffset = 0,yoffset = 0,event_pro = 'BTNCLICK',/bitmap) widget_control,tlb,xsize = 400,ysize = 400,/realize ;创建信息 info = {btncontainer:btncontainer,label1:label1} infoptr = ptr_new(info) widget_control,tlb,set_uvalue = infoptr ;消息管理 xmanager,'MYWINDOW',tlb,event_handler = 'mywindow_tlb',cleanup = 'mywindow_cleanup',/no_block print,'start up is done' END

你可能感兴趣的:(第一个IDL之图形用户界面window)