【发布时间】:2012-07-12 03:31:30
【问题描述】:
我们有一个 CWnd,上面有几个控件(CButton、CEdit、CStatic 等),我们希望找到一种方法来允许用户放大和缩小,从而使控件变大/变小。控件本身需要更改大小以及控件内的文本标签(如按钮文本)。
我正在查看网络上记录的 CZoomView 并使用 CDC SetMapMode 到 MM_ISOTROPIC,但这似乎真的只在 OnDraw 方法中有用,因为 CZoomView 在实现时有一个 TODO 来实现绘图代码。由于这些是 Microsoft 控件,我们只是让它们自己绘制。
这甚至可能吗?似乎我应该能够使用调整设备上下文来认为设备到逻辑单位比例是不同的,但我无法想出如何让控件来兑现这一点。
int previousMode = pDC->SetMapMode(MM_ISOTROPIC);
CSize previousWin = pDC->SetWindowExt(100,100);
CSize previousExt = pDC->SetViewportExt(m_zoom, m_zoom);
想法或想法?
【问题讨论】:
-
但是为什么你需要“缩放”一个控件呢?
-
想一想您如何能够使用此页面这样的表单更改网页浏览器的缩放比例。缩放时,它会以相同的比例更改所有文本和控件的大小。我们正在寻找一种在 CWnd 中执行此操作的方法,但它似乎不可行。无论如何,我现在已经离开了那个项目,所以它不再在我的盘子里了。
标签: mfc visual-c++