当用户单击属性表上的OK或APPLY按钮并且程序确定某页上的数据无效时,如何显示包含错误的页面以及描述错误?属性表数据验证
当前执行验证的过程在处理PSN_APPLY通知时执行以下操作。
MessageBox (hDlg, "Data must be positive!", "Error", MB_OK);
SetWindowLong (hDlg, DWL_MSGRESULT, PSNRET_INVALID);
如果当前显示做验证(A)的页面,但如果正在显示其他页面(B),将显示带有页面(B)的消息框,这个工作正常显示,那么当消息框被回答,显示有验证错误(A)的页面。我想过设置一些标志,以便当该页面(A)获得PSN_SETACTIVE通知时,它会显示消息框,但看起来很有趣。
C++中的Win32 API,没有MFC,没有NET,没有什么奇特的。
一些评论编号为您的6段。 2)实际上,属性表遍历发送PSN_APPLY通知的页面。它不超出设置PSNRET_INVALID的页面。 3)设置PSNRET_INVALID会导致属性表切换到相应的页面。 4)看起来像一个合理的解决方案;现在需要决定何时删除该消息。 5)由于PSN_APPLY通知在第一页报告错误时停止,因此难以忽略属性页的功能。 6)同样,困难的部分是决定何时/如何删除错误消息。 –