MFC一个令人纠心的错误

IDE生成的代码,运行几次之后开始出现以下这个错误

Error: must call SetScrollSizes() or SetScaleToFitSize() before painting scroll view.

该错误非常傻逼,因为并未修改该IDE生成的任何代码,只是运行几次之后就出现了。

刚开始我以为是IDE出错,重启,故障依旧。

后来调试发现,原来是在程序初始化时出错了。程序初始化时从注册表加载数据,然后在OnDraw在OnInitialUpdate运行了,就出现了这个错误。

解决办法就是不要用IDE生成的初始化加载注册表的代码

在CXXApp里面注释掉下面这行代码

LoadStdProfileSettings(0);

然后这行代码的下面加上这行,用来禁止从注册表加载窗口信息。

EnableLoadWindowPlacement(FALSE);

问题解决。

如果需要自己加载程序启动的参数,可以自己写一个从注册表加载初始化参数的函数,没必要用这个。

原文地址:https://www.cnblogs.com/jojodru/p/3154917.html