2012-07-10 118 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); 
     } 
    }