孙鑫视频学习:对第10章设置线宽时为什么不调用UpDateData(TRUE)的理解

 

  在第10章10.2.1小节中,首先分别对视图类和对话框类添加了一个名为m_nLineWidth的int型变量,再将用户在CSetting dlg对话框的edit控件中输入的线宽值记录在dlg.m_nLineWidth中,然后将dlg.m_nLineWidth赋给视图类的m_nLineWidth中,最后在CClientDC dc中用m_nLineWidth值对应的线宽画线。

  跟着视频做的时候觉得很奇怪,为什么直接在视图类的成员函数中就写m_nLineWidth=dlg.m_nLineWidth了,而且在对话框类里也没有将edit控件中用户输入的值更新到dlg.m_nLineWidth变量里,最后经百度想明白了,因为用户在设置好线宽后点击了对话框下面默认的“确定”按钮,该按钮的ID为IDOK,而IDOK与IDCANCEL最大的不同就在于IDOK在调用EndDialog()之前会调用UpDateData(true)。所以在对话框类就不用再UpDateData,用户的输入值就已经保存在dlg.m_nLineWidth中了,因此在视图类中可以直接调用。

posted @ 2016-04-19 11:50  夜骐重生  阅读(161)  评论(0编辑  收藏  举报