keypress_callback.m

来自「应用matlab的GUI功能设计用户图形界面的一些例子.」· M 代码 · 共 59 行

M
59
字号
function keypress_callback(hObject,eventdata,handles)

figures=get(0,'userdata');
handles=get(figures.FI,'userdata');
pos=get(handles.ap,'pos');
x=pos(1);y=pos(2);wid=pos(3);hig=pos(4);

key=get(hObject,'KeyPressedCallbackData' );
maxh=(get(handles.uh,'Maximum')-get(handles.uh,'VisibleAmount'));
maxv=(get(handles.uv,'Maximum')-get(handles.uv,'VisibleAmount'));

switch key.keyChar
    case 'd'     %'rightarrow'
        set(handles.uh,'userdata',0);%0标识滚动条value的被动改变
        set(handles.uv,'userdata',0);
        %redraw(handles.ax);
        step=5;
        add=wid-1;
        value=get(handles.uh,'value')+step;
        value=min(value,maxh);
        x=-value*add/maxh;
        set(handles.ap,'pos',[x,y,wid,hig]); 
        set(handles.uh,'value',value);
        
    case 'a',    %'leftarrow'
        set(handles.uh,'userdata',0);%0标识滚动条value的被动改变
        set(handles.uv,'userdata',0);
        %redraw(handles.ax);
        step=5;
        add=wid-1;
        value=get(handles.uh,'value')-step;
        value=max(value,0);
        x=-value*add/maxh;
        set(handles.ap,'pos',[x,y,wid,hig]); 
        set(handles.uh,'value',value);
    case 'w',     %'uparrow'
        set(handles.uh,'userdata',0);%0标识滚动条value的被动改变
        set(handles.uv,'userdata',0);
        %redraw(handles.ax);
        step=5;
        add=hig-1;
        value=get(handles.uv,'value')-step;
        value=max(value,0);        
        y=-(1-value/maxv)*add;
        set(handles.ap,'pos',[x,y,wid,hig]); 
        set(handles.uv,'value',value);
    case 's',       %'downarrow'
        set(handles.uh,'userdata',0);%0标识滚动条value的被动改变
        set(handles.uv,'userdata',0);
        %redraw(handles.ax);
        step=5;
        add=hig-1;
        value=get(handles.uv,'value')+step;
        value=min(value,maxv);        
        y=-(1-value/maxv)*add;
        set(handles.ap,'pos',[x,y,wid,hig]); 
        set(handles.uv,'value',value);
    otherwise,
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?