为什么在下面的示例中不需要CListCtrl Update()
Why CListCtrl Update() not necessary in the example below?
在下面的代码中,如果我在第一个"if"条件之后不使用"update()",ListCtrl将不会更新项,但即使在第二个if条件之后没有调用"update(()"方法,也会更新。为什么会这样?我只是想知道Update()什么时候是必要的,什么时候不是!
class MyDialog()
{
public:
void MyFunction();
private:
CListCtrl myListControl;
}
void MyDialog::Myfunction()
{
bool bCondition;
for (auto i = 0, i < myListControl.GetItemCount(); ++i)
{
auto n = myListControl.SetItemText(i, 1, "Start");
if (n)
myListControl.Update(i);
/*Update() is required here */
EvaluateCondition( bConditon);
if(bConditon)
myListControl.SetItemText(i, 1, "End");
/* Why is Update() ***Not*** required here? */
}
}
Update
会使更改立即显示在屏幕上。如果您不调用它,Windows会在下次运行消息循环时(在MyFunction
退出后)自动将更改显示在屏幕上。这就是为什么在将其更改为"结束"之前,您需要将其称为"开始"。当您的功能退出时,Windows会自动将其更新为"结束"。
如果X
为false,如何回答问题Why X is true?
???
当您设置某个项目的文本时,列表控件会使相应的区域无效;最终,当涉及到绘画时,它会重新绘制新的文本。
根据MSDN(CListCtrl::更新):
强制列表视图控件重新绘制nItem指定的项。
所以你可以立即看到结果。
相关文章:
- Visual Studio Professional 2013, Update 5, "No Target Architecture"
- C++CListCtrl-GetItemData始终返回0
- MFC 更改 CListCtrl 背景颜色
- CListCtrl 根据选定的行值执行操作
- 对目录进行更改后,如何"update" diretory_iterator?
- Windows Creators Update 會厮敗舊的C++應用程序
- QT4:在所有qgraphicsItem上的单个qgraphictem rapers paint()上的update()
- CListCtrl 更新滚动条问题
- Windows 10 Creators Update(1703)崩溃了我们的应用程序
- C++ Qt GUI update
- CListCtrl GetSelectionMark() 未返回正确选择的行
- 当Bool值在UPDATE()方法中更改时,只有一次呼叫函数
- vtk c++ update contour from contourfilter
- 在 CListCtrl 中检索选定的行
- QObject::使用update()函数连接计时器
- 从clistctrl中删除图像
- 使用CNTK 2.1.0 GPU的学习率设置,vs 2015 Update 3,C ,窗口
- vs 2012 Ultimate Update 4不会编译数组
- SQLLITE UPDATE语句不起作用
- 为什么在下面的示例中不需要CListCtrl Update()