2

いくつかのコントロール(CButton、CEdit、CStaticなど)を備えたCWndがあり、コントロールが大きくなったり小さくなったりするようにユーザーがズームインおよびズームアウトできるようにする方法を見つけたいと考えています。コントロール自体は、コントロール内のテキストラベル(ボタンテキストなど)と同様にサイズを変更する必要があります。

Webに記載されているCZoomViewを調べ、CDC SetMapMode to MM_ISOTROPICを使用していましたが、CZoomViewには実装時に描画コードを実装するためのTODOがあるため、これはOnDrawメソッドでのみ役立つようです。これらはMicrosoftのコントロールであるため、自分で描画させるだけです。

これも可能ですか?デバイスコンテキストの調整を使用して、デバイスと論理ユニットのスケールが異なると考えることができるはずですが、これを尊重するようにコントロールを取得する方法を思い付くことができません。

int previousMode = pDC->SetMapMode(MM_ISOTROPIC);
CSize previousWin = pDC->SetWindowExt(100,100);
CSize previousExt = pDC->SetViewportExt(m_zoom, m_zoom);

考えやアイデア?

4

2 に答える 2

0

Windows で DPI 設定を変更しないのはなぜですか ([表示] -> [カスタム テキスト サイズの設定])。これは、物事を小さく/大きくする一般的な方法であり、ユーザーが読みにくい場合は、これを行うことが期待されます。

Windows 標準コントロールは「DPI 対応」であるため、無料でズームできます。

于 2012-07-12T07:20:12.703 に答える