0
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};
....
}
창 (새 창은 데스크톱 사진이있는 전체 화면 창입니다. background) CaptureScreenApp :: captureScreen에서 브라우저 창 아래에 항상 나타납니다 (브라우저 창은 항상 다른 단어로 활성화 됨). 새 창에 대해 HWND_TOPMOST를 설정하는 방법은 무엇입니까? 같은 :firebreath 플러그인은 전체 화면 창을 만들지 만 브라우저 창 아래에 항상 창을 표시합니다. 어떻게 상단에 가져올 수 있습니까?
는 어떻게하면 appers 때 맨 전체 화면 창을 가져올 수 있습니까?
감사합니다. 귀하의 제안대로, 부모, 크롬 및 파이어 폭스 작품으로 브라우저 창을 사용하지만, IE는 여전히 실패 : 브라우저 창은 jsapi를 처음 호출 할 때 여전히 앞에 있지만 두 번째 시간은 뒤쳐집니다. – yyj
Spy ++를 사용하여 창의 효과적인 레이아웃을 검사 한 다음주의 깊게'SetWidnowPos' 기사를 읽고 창을 포 그라운드로 배치하는 옵션을 확인하십시오 (부모 창을 사용하는 것 외에 /는 제외). –
SetForegroundWindow (hwnd)를 사용합니다. 창을 가져올 수는 있지만 Ctrl + Tab을 누를 때 앞에 붙이지 않아도됩니다.이 문제는 IE – yyj