2009-01-14 29 views
0

我將在MFC消息循環的掛鉤上,使得Qt的事件處理,而不運行 - > EXEC()上qApp(因爲它的攔截):移植的Windows庫,事件循環

LRESULT CALLBACK myHookFn(int ncode, WPARAM wparam, LPARAM lparam) { 
    if (qApp) qApp->sendPostedEvents(); 
    return CallNextHookEx(0, ncode, wparam, lparam); 
} 

int argc = 0; 
new QApplication(argc, NULL); 
SetWindowsHookEx(WH_GETMESSAGE, myHookFn, 0, threadId); 

我的問題是:

什麼是可以的MacOSX下使用,這樣sendPostedEvents也可以被稱爲等同於MFC卡鉤插入的機制?

回答

1

這應該會自動發生在Qt Mac 4.5(包括Carbon和Cocoa端口)之後 - 因爲Qt在CFRunLoop中註冊爲CFRunLoopSource,並且回調將調用sendPostedEvents。另請參見Qt 4.5的src/gui/kernel中的qeventdispatcher_mac.mm