我使用WMP SDK來控制Windows Media Player。我首先使用Windows Media Player插件嚮導創建了一個新項目,然後添加了使用命名管道與我的應用程序通信的代碼。當我的應用程序需要的音樂靜音,例如,它發送消息到WMP插件,然後插件靜音音樂:使用WMP SDK發送命令時Windows Media Player UI未更新
CComPtr<IWMPSettings> settings;
if (SUCCEEDED(core_->get_settings(&settings)))
{
settings->put_mute(VARIANT_TRUE);
}
它的工作原理,當我發送命令,他們得到執行,但用戶界面不會更新。因此,例如,如果我發送靜音命令,則音樂會變得靜音(沒有聲音),但靜音按鈕仍然顯示爲音樂未靜音。爲了證明這一點,我可以在這一點改變皮膚或跳到另一首歌曲,並且UI得到更新並正確顯示靜音狀態。如果我點擊它,它會取消靜音,然後再次顯示非靜音狀態(現在是正確的狀態)。
那麼,有沒有什麼辦法強制刷新的UI,例如,或其他解決方法?
你似乎已經在這裏合併C#和C++代碼。另外,我不明白'new WindowInteropHelper(this).Handle'表達式是如何解析爲WMP窗口句柄的。 – kolufild 2012-04-05 10:27:43