クリックしたときにカスタムサウンドを再生できるカスタムVCLコンポーネントを作成しようとしています。サウンドはリソースDLLからアクセスされます。サウンド付きのVCLボタンコンポーネントを作成する
質問:サウンドはDirect Xを使用して再生され、作成するには有効なウィンドウハンドルが必要です。
私の素朴な最初のテストは、コンポーネントのコンストラクタで音を初期化することでした。この時点でMainFormHandleがNULLであるよう
__fastcall TArrayBotButton::TArrayBotButton(TComponent* Owner)
: TBitBtn(Owner),
FSoundID("BUTTON_CLICK_1")
{
initABCoreLib();
HWND hWnd = Application->MainFormHandle;
mSound.Create(FSoundID.c_str(), hWnd);
}
が、上記では、動作しません。また、コンポーネントであるため、Application変数を使用することはおそらくコンストラクタ(?)では安全ではありません。
サウンドを初期化するためのポインタはありますか?
完璧に作業し、すべてをはるかに簡単にしました。 –