Mfc 如何获取基于CView的客户端区域的大小?

Mfc 如何获取基于CView的客户端区域的大小?,mfc,mdi,getclientrect,Mfc,Mdi,Getclientrect,我有一个MFC MDI应用程序。为了在视图中放置一些控件(MyView派生自CView),我需要知道视图的客户端区域的大小。我将在控件的Create函数中使用基于客户端区域大小的维度 当我使用MyView.GetClientRect()时,我得到了1154 x 466。但实际的客户端大小(以像素为单位)是1410 x 725,这是使用Spy++和在屏幕快照上绘制来测量的 如何获取客户端区域的像素大小 C++,Visual Studio 2010,64位Windows 7 Pro您是否在应用程序中

我有一个MFC MDI应用程序。为了在视图中放置一些控件(MyView派生自CView),我需要知道视图的客户端区域的大小。我将在控件的Create函数中使用基于客户端区域大小的维度

当我使用MyView.GetClientRect()时,我得到了1154 x 466。但实际的客户端大小(以像素为单位)是1410 x 725,这是使用Spy++和在屏幕快照上绘制来测量的

如何获取客户端区域的像素大小


C++,Visual Studio 2010,64位Windows 7 Pro

您是否在应用程序中使用dpi?否。dpi是Windows 7的默认设置,我没有使用它。您的视图是否有框架?正如我所说,它是MFC MDI应用程序。这意味着有一个主框架窗口和多个子窗口,其中包含视图。这取决于您何时尝试调用它。如果在OnInitialUpdate()或OnCreate()中调用MyView,则MyView可能不会因框架而最大化,并且具有创建视图时使用的初始大小。在视图显示后尝试调用它,看看它是否有效