我感到沮丧,因为我知道Stackpanel不在MFC中。
我正在制作UI,我必须垂直堆叠控件。
如果我使用的是WPF,我可以使用StackPanel,但是我想问您有关如何在MFC中进行的建议。
thnk你非常
MFC中没有任何实现StackPanel
功能的东西。如果您想堆叠控件,则必须在代码或资源编辑器中自己执行此操作。
从Visual Studio 2015开始,MFC已更新,以包括对动态布局的支持。当调整对话框时,这有助于自动重新安排控件,但仍然无法为您提供StackPanel
的全部功能。
使用MFC,您必须手动执行此操作或找到为您完成的第三方代码。E. g。看看CodeProject。
要独自进行布局,您必须知道每个控件需要多少空间显示其内容。
某些控件具有计算其"理想"大小的方法,e。g。:
-
CButton::GetIdealSize()
-
CRichEditCtrl::RequestResize()
,计算丰富的编辑控制最小尺寸
某些控件(例如CStatic
(不提供此类方法。在这种情况下,您可能会成功使用使用标志DT_CALCSIZE
的CDC::DrawText()
成功计算其大小(别忘了首先将控件字体选择到设备上下文中以获得准确的测量(。
在其他情况下,如果无法进行计算,则可以假设对控件的固定尺寸。