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};
....
}
la fenêtre (la nouvelle fenêtre est une fenêtre plein écran avec un pic de bureau comme background) Je crée dans CaptureScreenApp :: captureScreen toujours sous la fenêtre du navigateur quand il apparaît (la fenêtre du navigateur est toujours activée dans un autre mot), quoi que je puisse définir HWND_TOPMOST pour la nouvelle fenêtre. comme ceci:plugin Firebreath créer une fenêtre plein écran, mais la fenêtre toujours sous la fenêtre du navigateur quand il appers, comment puis-je l'amener en haut
comment puis-je mettre la fenêtre en plein écran vers le haut quand il appers? L'API vous permet de changer l'ordre Z (assurez-vous de lire les remarques ici)
merci! Comme vous le suggérez, utilisez la fenêtre du navigateur en tant que parent, chrome et firefox fonctionne, mais IE a quand même échoué: la fenêtre du navigateur est toujours devant lorsque vous appelez le jsapi pour la première fois, mais la seconde fois. – yyj
Vous pouvez utiliser Spy ++ pour inspecter la disposition effective des fenêtres, puis lire attentivement l'article 'SetWidnowPos' pour voir vos options de mise en avant de la fenêtre (sauf/en plus d'utiliser la fenêtre parent). –
utiliser le SetForegroundWindow (hwnd) Je peux apporter la fenêtre avant, mais ne peut pas le garder en avant lorsque appuyez sur ctrl + tabulation, ce problème vient juste sur IE – yyj