Mfc 将一个CFormView居中“;对话资源“;在SDI中的CMInframe窗口中

Mfc 将一个CFormView居中“;对话资源“;在SDI中的CMInframe窗口中,mfc,sdi,Mfc,Sdi,我有一个对话框资源,里面有一些控件,主要是用户和密码编辑控件,绑定到CFormView。这样的对话框是一个300 x 200像素的小矩形 当我运行应用程序时,CFrameWindow几乎占据了所有屏幕,因此对话框显示在左上角。如果我尝试获取CFormView的矩形尺寸,我发现它已扩展到CMainFrame中的可见区域,无论原始对话框大小如何 我的问题是,是否可以将对话( cFabVIEW )集中在 cMyFrase< /C>中间,即使调用 OnSosith消息,也始终保持中心。 谢谢。在VS

我有一个对话框资源,里面有一些控件,主要是用户和密码编辑控件,绑定到
CFormView
。这样的对话框是一个300 x 200像素的小矩形

当我运行应用程序时,
CFrameWindow
几乎占据了所有屏幕,因此对话框显示在左上角。如果我尝试获取
CFormView
的矩形尺寸,我发现它已扩展到
CMainFrame
中的可见区域,无论原始对话框大小如何

我的问题是,是否可以将对话(<代码> cFabVIEW <代码>)集中在<代码> cMyFrase< /C>中间,即使调用<代码> OnSosith消息,也始终保持中心。


谢谢。

在VS2019中,您不必编写任何代码行。rc编辑器具有动态布局功能。将控件精确放置在对话框的中间。然后设置


我只是快速搜索了一下,看到了几个。但我个人没有这方面的经验。在资源编辑器中调整控件的动态布局属性怎么样?我认为这不是理想的解决方案。最好将框架缩小,然后将其居中。这个答案显示了如何使框架更小:可能在您的框架类中重写RecalcLayout()就是您想要截取它的地方。在这里从内存工作…并且在这台机器上没有VC++…但是,框架获得视图并将其大小调整为与框架客户端区域相同的大小(好的,关闭——在工具栏之后保留用于查看的区域,等等,请注意)。您可以让formview成为另一个窗口的子窗口,并使该窗口位于formview的中心。例如,拆分器窗口是框架的子窗口,而视图是拆分器窗口的子窗口。您不必编写任何代码行。只需使用VS2019 rc编辑器中的动态布局功能。