当我第二次创建子窗口时,
if (!::RegisterClass(&hwClass))
{
throw std::runtime_error("RegisterClass failed!");
}
它抛出了一个异常,即该类已经存在。但子窗口在以下位置销毁时删除了子窗口类:
WM_DESTROY:
{
delete this; //destroy child class
}
如果我评论期望错误,它会起作用。这是否意味着我不需要再次注册课程?
答案 0 :(得分:5)
答案 1 :(得分:1)
是的,你不应该再次注册课程。
这是来自MSDN:
应用程序的所有窗口类 寄存器是未注册的 终止。
<强>更新强> 这是有道理的,因为在创建任何窗口之前,可以基于窗口类创建许多窗口并且存在窗口类。