【问题标题】:Is there a message handler like 'OnPostCreate' for the MFC CWnd class?MFC CWnd 类是否有像“OnPostCreate”这样的消息处理程序?
【发布时间】:2021-10-23 16:02:20
【问题描述】:

我需要知道在创建 CWnd 时如何访问GetClientArea()。显然,在构造函数中创建它之前不能调用它,我只想让框架处理OnCreate(),那么我应该什么时候调用它呢?有没有我可以使用的OnPostCreate() 处理程序或类似的东西?

【问题讨论】:

  • "我只想让框架处理OnCreate()"。所以重写它,并首先调用基类的实现。
  • 谢谢,这有点用。即使在我覆盖并调用基类的 OnCreate() 之后,GetClientRect(&rect) 仍然没有为 rect 对象提供任何值。所有属性都只是 0。有什么想法吗?
  • 显示您如何覆盖OnCreate。还要展示一个最小的可重现示例,或者至少说明您是否使用 SDI、MDI、如何创建此窗口等。
  • 在创建窗口后,您可能必须等待第一条WM_SIZE 消息,然后才能确定大小是否正确。

标签: c++ mfc


【解决方案1】:

我假设您的意思是 GetClientRect(),而不是 ...Area()

每次窗口大小发生变化时,您都需要获取该矩形,对吗?那么最合适的地方就是在 CWnd::OnSize

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 2014-08-20
    相关资源
    最近更新 更多