第11章 GUI Page495~496 步骤三十一:另存为别的文件

当前的TrySaveFile(bool hint_on_dirty = true)有两个特征无法满足“另存”的需求:

一,TrySaveFile仅在数据为“新”的时候才提问用户输入文件名。而“另存”总是要求用户输入一个文件名,多以它总应该弹出一个文件选择对话框,这也正是菜单标题带有“...”的暗示的原因。

二,TrySaveFile仅在文件确实有仍未保存新修改(即数据为“脏”)时,才真实的执行保存操作,否则它将聪明地直接返回。只能再为TrySaveFile添加两个新的标志:

为TrySaveFile添加两个新的标志:

第11章 GUI Page495~496 步骤三十一:另存为别的文件_第1张图片

修改TrySaveFile的实现:

第11章 GUI Page495~496 步骤三十一:另存为别的文件_第2张图片

为“另存为...”菜单项MenuItemFileSaveas挂接事件响应函数:

运行效果:

第11章 GUI Page495~496 步骤三十一:另存为别的文件_第3张图片

保存的文件内容:

第11章 GUI Page495~496 步骤三十一:另存为别的文件_第4张图片

你可能感兴趣的:(《白话C++》第11章,我的小画家,《白话C++》学习,ui,c++)