通过实现flashPlayer activeX的消息钩子可以很轻松的屏蔽掉flex的系统右键菜单, 从而实现自己的右键菜单。当然这个消息钩子也会监听到键盘消息,从而你可以很轻松 的实现自己的键盘事件。 代码如下:
-
- this .flashContainer= new FlashContainer( this );
-
- this .flashContainer.addHookInterceptor( new OleHookInterceptor(){
-
-
-
-
- public boolean intercept(Msg message, int code, int wParam,
- int lParam) {
- int msg=message.getMessage();
- if (msg== Win32Constant.WM_RBUTTONDOWN) {
-
- Point cursor = flashContainer.getParent().toControl(
- Display.getCurrent().getCursorLocation());
-
- if (flashContainer.getBounds().contains(cursor) && flashContainer.isVisible()) {
-
- MessageBox messageBox = new MessageBox(flashContainer
- .getShell());
- messageBox.setMessage("您单机了右键" );
- messageBox.open();
- return true ;
- }
-
- }
- if (msg==Win32Constant.WM_KEYDOWN){
- System.out.println("按下" +( char )message.getWParam());
- }
-
- if ((OS.GetKeyState(Win32Constant.VK_CONTROL)< 0 )&&(OS.GetKeyState(Win32Constant.VK_DELETE)< 0 )&&(message.getWParam() == 'Z' )){
- System.out.println("control DELETE and Z..........." );
- }
- return false ;
- }
- });
下载
http://smartinvoke.cn/