EXCEL中的“添加监视点”是做什么用的?

EXCEL中的“添加监视点”是做什么用的?,第1张

excel的“添加监视点”可以让您对某些特殊的单元格进行实时监控。即使这些单元格位于其它工作簿或本工作簿的屏幕以外位置也能实现,只要对所监控的单元格的数据进行修改,立刻可在监视窗口中观察到,无需再左、右、上、下点击拉动滚动条来进行切换。

实现方法:鼠标右键单击需进行监视的单元格,在d出的快捷菜单中选择“添加监视点(w)”,在出现的“监视窗口”中就会把该单元格列入监控范围。

你也可以通过这个窗口来添加监视点。假如您不喜欢这样的浮动窗口方式,将该“监视窗口”拉到工具栏位置,“监视窗口”就会自动插入到工具栏与单元格表单中间。

如果您不需要这个监视点了,既可鼠标右键单击单元格通过快捷菜单来删除,也可在“监视窗口”选中该监视点,然后点击“删除监视”按钮即可。

不知道你这个是不是swing实现。类实现事件接口,然后在类中重新事件方法,方法中可以判断按钮id来具体 *** 作;伪代码实现如下

public class MyFrame extends JFrame implements ActionListener{

public MyFrame() {

....

button2.addActionListener(this)

}

/**

* 按钮二的事件响应在此

*/

public void actionPerformed(ActionEvent e) {

if(e.getSource()==button2){

showMsg("你按下了" + button2.getText())

}

...

}

}

为了实现键盘的监控,从新开发一个输入法是不现实的,一般的 *** 作就是在系统的输入法机制中添加接口回调。我们知道,再应用程序中拿到按键的回调一般是监听onKeyDown的接口,如下所示:

public boolean onKeyDown(int keyCode, KeyEvent event)

开发者就可以根据回调方法中的参数, keyCode与KeyEvent来判断具体事件。但是,由于事件的回调机制在其的沙箱中运行,在其他应用中是无法拿到当前应用事件回调的。

那么我们就从上到下,具体的看看事件的传递机制。如下图所示,用户点击后,软键盘或物理按键的输入驱动就会产生一个中断,且向/dev/input/event*中写入一个相应的信号量。Android *** 作系统则会循环的读取其中的事件,再分发给WindowManagerServer。由WindowManagerServer根据事件的来源分发到各个不同的ViewGroup与View中,从而产生不同的OnClick、OnKeyDown和OnTouch等事件。

这个时候很自然的想到,黑客们希望做键盘监控,一定会向Linux底层增加自定义的事件。这里我们使用的是Linux中的getevent获得/dev/input/eventX设备汇报的事件,这个命令还会输出所有event设备的基本信息。包括触屏、按键、耳机插入等等。其基本用法如下:

Usage: getevent [-t] [-n] [-sswitchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]

  -t: show time stamps

  -n: don't print newlines

  -s: print switch states for given bits

  -S: print all switch states

  -v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32,props=64)

  -d: show HID descriptor, if available

  -p: show possible events (errs, dev, name, pos. events)

  -i: show all device info and possible events

  -l: label event types and names in plain text

  -q: quiet (clear verbosity mask)

  -c: print given number of events then exit

  -r: print rate events are received

键入getevent后,我们能够看到设备中的一些列输入硬件驱动信息,同样下面会出现很多输入指令信号,通常情况下,这些信号量都在刷屏,如下图所示:

这些信号量的表示我们无法直接看懂,输入getevent –l加入Label我们能够看到一些添加的标签,如下所示:

其实这些Lable已经在其input.h头文件中定义好,其中type的定义如下:

/*

   * Event types

   */

  #define EV_SYN          0x00

  #define EV_KEY          0x01

  #define EV_REL          0x02

  #define EV_ABS          0x03

  #define EV_MSC          0x04

  #define EV_SW           0x05

  #define EV_LED          0x11

  #define EV_SND          0x12

  #define EV_REP          0x14

  #define EV_FF           0x15

  #define EV_PWR          0x16

  #define EV_FF_STATUS       0x17

  #define EV_MAX          0x1f

  #define EV_CNT         (EV_MAX+1)

一般来说,常用的是EV_KEY、EV_REL、EV_ABS、EV_SYN,分别对应键盘按键、相对坐标、绝对坐标、同步事件。EV_SYN则表示一组完整事件已经完成,需要处理,EV_SYN的code定义事件分发的类型。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11419971.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存