IamYanggq
2017-07-14 03:36DUILIB 如何删除控件啊?
我使用Delete()程序会崩溃。最后发现在
```for( int it1 = 0; it1 < m_items.GetSize(); it1++ ) {
CControlUI* pControl = static_cast(m_items[it1]);
if( !pControl->IsVisible() ) continue;
if( pControl->IsFloat() ) continue;
szControlAvailable = szAvailable;
RECT rcPadding = pControl->GetPadding();
szControlAvailable.cy -= rcPadding.top + rcPadding.bottom;
iControlMaxWidth = pControl->GetFixedWidth();
iControlMaxHeight = pControl->GetFixedHeight();
if (iControlMaxWidth <= 0) iControlMaxWidth = pControl->GetMaxWidth();
if (iControlMaxHeight <= 0) iControlMaxHeight = pControl->GetMaxHeight();
if (szControlAvailable.cx > iControlMaxWidth) szControlAvailable.cx = iControlMaxWidth;
if (szControlAvailable.cy > iControlMaxHeight) szControlAvailable.cy = iControlMaxHeight;
SIZE sz = { 0 };
if (pControl->GetFixedWidth() == 0) {
nAdjustables++;
sz.cy = pControl->GetFixedHeight();
}
else {
sz = pControl->EstimateSize(szControlAvailable);
if (sz.cx == 0) {
nAdjustables++;
}
else {
if (sz.cx < pControl->GetMinWidth()) sz.cx = pControl->GetMinWidth();
if (sz.cx > pControl->GetMaxWidth()) sz.cx = pControl->GetMaxWidth();
}
}
cxFixed += sz.cx + pControl->GetPadding().left + pControl->GetPadding().right;
sz.cy = MAX(sz.cy, 0);
if( sz.cy < pControl->GetMinHeight() ) sz.cy = pControl->GetMinHeight();
if( sz.cy > pControl->GetMaxHeight() ) sz.cy = pControl->GetMaxHeight();
cyNeeded = MAX(cyNeeded, sz.cy + rcPadding.top + rcPadding.bottom);
nEstimateNum++;
}
for循环中的第1个判断崩溃,而第一句话pControl的结果全是乱码
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- duilib中像这种独立的控件怎么实现亮度加减功能啊,求指教,在线等
- 控件
- 图片
- c++
- 3个回答
- duilib中实现Button按钮控制控件的一些功能
- 控件
- 图片
- c++
- button
- duilib
- 3个回答
- Duilib里XML布局有没有一种属性可以实现文字自适应空格?
- 布局
- 界面
- xml
- c++
- duilib
- 1个回答
- DUILIB 如何删除控件啊?
- duilib
- 控件
- c++
- 1个回答
- DuiLib界面库中控件圆角半径有锯齿,怎么使用GDI+改善啊?
- 2个回答