CaptureScreenApp app;
int MyPluginAPI::captureScreen(const FB::JSObjectPtr& callback)
{
boost::thread cs(boost::bind(&CaptureScreenApp ::captureScreen,
app, callback));
return 1;
}
class CaptureScreenApp {
public:
CaptureScreenApp() {
HRESULT hRes;
hRes = OleInitialize(NULL);
ATLASSERT(SUCCEEDED(hRes));
AtlInitCommonControls(ICC_WIN95_CLASSES);
g_Module.Init(NULL, NULL);
};
~CaptureScreenApp() {
g_Module.Term();
OleUninitialize();
};
bool captureScreen() {
CMessageLoop theLoop;
CMainDialog g_MainDlg;
g_Module.AddMessageLoop(&theLoop);
if (NULL == g_MainDlg.Create(NULL)){
DWORD ret = GetLastError();
return FALSE;
}
g_MainDlg.ShowWindow(SW_SHOW);
g_MainDlg.UpdateWindow();
int nRet = theLoop.Run();
g_Module.RemoveMessageLoop();
return TRUE;
};
};
class CMainDialog : public CDialogImpl<CMainDialog>
{
public:
enum {IDD = IDD_MAIN};
....
}
窗口(新窗口是一个全屏窗口与桌面图片为背景),我创建在CaptureScreenApp::captureScreen总是在浏览器窗口下,当它出现时(浏览器窗口总是激活),无论我如何设置HWND_TOPMOST的新窗口。这样的:
输入链接描述
当全屏窗口打开时,我怎么把它放在最上面?
SetWindowPos
API允许您更改Z顺序(请务必阅读此处的备注)。您使用NULL
父窗口创建您的窗口,因此您的窗口完全独立于浏览器窗口,因此没有什么可以将它推到前面:它将是您或交互式用户。