如何在不显示MFC CDialog的情况下计算其客户区?

时间:2009-10-23 02:23:10

标签: visual-c++ mfc

如何获取基于对话框模板的CDialog的Window Rect。该对话框不可见,也不可见

2 个答案:

答案 0 :(得分:1)

使用CDialog可能会很棘手,因为如果你没有显示CDialog,就不会创建窗口句柄,你也无法调用GetClientRect。

我建议调用CreateDialogIndirect来创建对话框,然后你可以让客户端直接。你不需要显示对话框。我认为只要创建窗口句柄,GetClientRect就可以工作。我不是专家,自从我写了MFC代码以来已经很多年了。

答案 1 :(得分:0)

嗯...

在Windows API-land中,您可以自己加载资源(FindResourceEx,LoadResource),了解对话框模板资源的二进制结构(http://blogs.msdn.com/oldnewthing/archive/2004/06/22/162360.aspx处的一些线索),在对话框中转换对话框的大小从对话框单元到像素的模板(请查看http://msdn.microsoft.com/en-us/library/ms645475(VS.85).aspx)。

我很好奇你为什么要这样做。