我正在使用WMP SDK来控制 Windows Media Player。我首先使用 Windows Media Player 插件向导创建了一个新项目,然后添加了使用命名管道与我的应用程序通信的代码。例如,当我的应用程序需要将音乐静音时,它会向 WMP 插件发送一条消息,然后该插件会将音乐静音:
CComPtr<IWMPSettings> settings;
if (SUCCEEDED(core_->get_settings(&settings)))
{
settings->put_mute(VARIANT_TRUE);
}
它可以工作,当我发送命令时,它们会被执行,但 UI 不会更新。因此,例如,如果我发送静音命令,音乐会静音(没有声音),但静音按钮仍然显示,好像音乐没有静音。为了证明这一点,我可以在此时更改皮肤或跳到另一首歌曲,UI 得到更新并正确显示静音状态。如果我单击它,它会取消静音,然后再次显示取消静音状态(现在是正确的状态)。
那么,是否有任何方法可以强制刷新 UI,例如,或其他一些解决方法?