2012-07-10 64 views
3

如何在全屏游戏时屏蔽热点? 当系统启用了热角时,游戏处于全屏状态,当我将光标移动到任何角落时,游戏就会最小化。全屏如何屏蔽热点

我换到全屏这样的:

fullscreenWindow = [[NSWindowFullscreen alloc] initWithContentRect:frame styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer: NO]; 
mainWindow = [self window]; 
[mainWindow setAcceptsMouseMovedEvents:NO]; 
[mainWindow orderOut:nil]; 

// Set the options for our new fullscreen window  
[fullscreenWindow setReleasedWhenClosed: YES]; 
[fullscreenWindow setLevel: NSFloatingWindowLevel]; 
[fullscreenWindow setHidesOnDeactivate:YES];    
[fullscreenWindow setContentView: self]; 
[fullscreenWindow makeKeyAndOrderFront:self];  
[fullscreenWindow makeFirstResponder:self];   
[fullscreenWindow setAcceptsMouseMovedEvents:YES]; 

回答

2

你可以改变在上面时,鼠标位置的鼠标位置。

- (void)mouseMoved:(NSEvent *)theEvent 
    { 
     NSPoint mouseLoc; 
     mouseLoc = [NSEvent mouseLocation]; //get current mouse position 
     //mouse position change 
     CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState); 
     int Height = (int)ScrnRect.size.height; 
     // NSLog(@"Height::%d,MouSe.Y::%f",Height,mouseLoc.y); 
     if(Height < mouseLoc.y+5){ 
      CGEventRef mouse = CGEventCreateMouseEvent (NULL, kCGEventMouseMoved, CGPointMake(mouseLoc.x, 5), 0); 
      CGEventPost(kCGHIDEventTap, mouse); 
      CFRelease(mouse); 
      CFRelease(source); 
     } 
    }