ウィンドウハンドルについて
kuroneko  2014/07/10(Thu) 15:42
DXライブラリーのdshowを使ってムービーを描画しているのですが
ウィンドウハンドルが取れないためウィンドウにあわせることができないのですが
どうすればいいですか
質問です。
Reputeless  2014/07/10(Thu) 22:19
Siv3D ではウィンドウハンドルを取得する機能を提供していません。
ですが、いくつかの裏道があります。以下のサンプルを参考にしてください。
方法 1 だと、関係ないウィンドウの HWND を取得する恐れがあるので、方法 2 を推奨します。

# define NOMINMAX
# define STRICT
# define WIN32_LEAN_AND_MEAN
# include <Windows.h>
# include <Siv3D.hpp>

s3d::String GetModulePath()
{
wchar_t path[MAX_PATH];
::GetModuleFileNameW(nullptr, path, MAX_PATH);
return path;
}

void Main()
{
while (System::Update())
{
// 方法 1
if (Input::MouseL.clicked)
{
// この時点で一番トップにあるウィンドウのウィンドウハンドルを取得
HWND hWnd = ::GetForegroundWindow();

::SetWindowTextW(hWnd, L"Test");
}

// 方法 2
if (Input::MouseR.clicked)
{
// 現在のウィンドウタイトル
const String currentTitle = L"Test";

HWND hWnd = ::FindWindowW(GetModulePath().c_str(), currentTitle.c_str());

::SetWindowTextW(hWnd, L"Test2");
}
}
}
kuroneko  2014/07/31(Thu) 19:10
ありがとうございます
返信が遅れってしまいすみません

- WEB PATIO -