我在从CDialog派生的对话框中使用CMFCToolbar,并使用LoadBitmap()在工具栏上加载图像。当我运行应用程序时,图像可以正常显示。但是,当我通过远程桌面连接计算机时,图像消失。当计算机长时间闲置或进入睡眠模式时,会出现同样的问题。这只发生在CMFCToolbar上。所有其他工具栏都可以正常显示。
经过一些调试后,我进行了以下观察(虽然很奇怪)。我可以发现,只要在OnSize()事件中出现一些异常(例如在NULL指针上调用SetWindowPos())(在我的对话框中重载),图像就不会消失。这意味着Windows会在异常后停止进一步调用,并且不会发生问题。但是,如果没有异常,则会成功评估OnSize()并显示此问题。我尝试删除OnSize()事件但没有成功。答案 0 :(得分:0)
最后,我可以弄清楚并解决问题。我正在使用LoadBitmap()加载PNG图像。在我连接到远程桌面或投影仪或计算机从睡眠模式唤醒之前,它工作得非常好。当我用BMP文件替换PNG文件时,问题得到了解决。在这些情况下,PNG文件似乎无法与CMFCToolbar控件一起使用,尽管它们在正常工作流程中工作。