为了确定是否启用「Undo」选项,POPPAD2给编辑控制项发送一条EM_CANUNDO讯息。如果编辑控制项能够执行「Undo」动作,那么SendMessage呼叫传回非零值。在这种情况下,选项被启用;否则,选项无效化:
只有当剪贴簿中包含文字时,「Paste」选项才能够被启用。我们可以使用CF_TEXT识别字通过IsClipboardFormatAvailable呼叫来确定这一点:
只有选择了编辑控制项中的文字,「Cut」、「Copy」和「Delete」选项才能够被启用。给编辑控制项发送一条EM_GETSEL讯息,并传回包含此资讯的整数:
iSelect的低位元字是第一个被选中字元的位置,iSelect的高字组是下一个被选中字元的位置。如果这两个字相等,则表示没有选中文字:
然後可以将iEnable的值用於「Cut」、「Copy」和「Delete」选项:
处理功能表项
当然,如果POPPAD2程式不使用子视窗编辑控制项,那么我们将面临一些问题,这涉及如何完成「Edit」功能表中的「Undo」、「Cut」、「Copy」、「Paste」、「Clear」和「Select All」选