都是局部对象,为什么一个在生存期结束析构,另一个不发生析构?
CMyButton btn; //局部对象,函数结束时消失
btn.Create( "发牌 ",BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD ,CRect(0,0,100,100),this,123);
为什么上面建立的按钮在该函数作用域结束后按钮消失
而下面的代码 ,在 “背景被擦除事件函数中(OnEraseBkgnd)”作用域结束时候,背景仍然还是自己设置的位图?
(都是孙鑫的视频教程里的)
CBitmap bitmap; //这局部对象也该在作用域消失时无效,才对
bitmap.LoadBitmap(IDB_Bitmap1);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(PDC);
dcCompatible.SelectObject(&bitmap);
PDC-> BitBlt(……)
[解决办法]
第一个是C++ 规定的
第二个是已经把图片画到对话框上面了,只要不刷新就一直存在的.
[解决办法]
PDC-> BitBlt(……)
这句话已经把位图数据拷贝到当前的DC中,与bitmap是否释放没关系
[解决办法]
不是一样的吗?OnEraseBkgnd又不是执行一次,每次执行的时候都重新创建一个CBitmap bitmap;,然后析构,有问题吗?
[解决办法]
赚点分先
PDC画上的不刷新就会一直在
[解决办法]
OnEraseBkgnd又不是执行一次,每次执行的时候都重新创建一个CBitmap bitmap;,然后析构,有问题吗?