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。像这样:
如何在全屏窗口出现时将其全屏显示?
答案 0 :(得分:0)
SetWindowPos
API允许您更改Z顺序(请务必阅读备注)。您使用NULL
父级创建窗口,因此您的窗口完全独立于浏览器窗口,因此无需将其推到前面:它可以是您或交互式用户。