近几日做个公司项目,在主窗口上用重载的CPropertySheet、CPropertyPage创建了属性页。可是每当第一次点击page上的“打开文件”按钮时,常会出现主窗口背景位图没有加载的情况。
调试了很长时间,才发现了原来是由DoModal()产生的问题。
dlg.Domodal()会改变当前的工作路径。使得程序中使用相对路径的一些地方在打开对话框的情况下,会出现加载错误。比如我主窗口重绘函数中的LoadBitmap(_T(".\\bg_main.bmp"), &bmp);
为了防止这类错误的出现,就要在程序中使用绝对路径。
如:LoadBitmap(_T("C:\\bg_main.bmp"), &bmp);
由此可以联想到,以后做vc编程的时候,每当使用到相对路径的情况下,就要思考,会不会程序在某些情况改变当前工作路径,而导致程序出错。
譬如,数据库操作、调用等。
VC---由DoModal()导致的主窗口背景未加载问题所思
最新推荐文章于 2016-08-29 17:39:43 发布
本文探讨了在使用C++进行Windows应用开发时,由于DoModal()函数改变工作路径,导致相对路径加载错误的问题,并提出了使用绝对路径的解决方法。通过案例分析,提醒开发者注意路径问题,避免类似错误。
1273

被折叠的 条评论
为什么被折叠?



