1

Windows 8.1 の MFC アプリケーションにいくつかの大きなツールバーがあります。現在、次のコードを使用して、アプリケーションが異なる DPI 設定のモニターに移動されたときに、現在の DPI スケーリングを使用して各ボタンの画像を置き換えています。

const auto& toolbars = m_cToolBarManager.GetToolbar();
for (const auto& toolbar : toolbars)
{
    CMFCToolBarImages* images = toolbar->GetImages();
    for (int index = 0; index < toolbar->GetCount(); ++index)
    {
        CMFCToolBarButton* button = (CMFCToolBarButton*)toolbar->GetButton(index);
        TRY_POINTER(button);
        if (button->m_nStyle & TBBS_SEPARATOR)
        {
            continue;
        }
        images->AddIcon(LoadScaledIcon(button->m_nID));
    }
}

アプリケーションを別のモニターに移動するたびに、何百もの画像を読み込んでボタンに設定する必要があります。さらに、リソースとして埋め込まれた多数の画像により、アプリケーションの実行可能ファイルが大きくなります。

これを行うより効率的な方法はありますか?

4

0 に答える 0