功能表及其他资源(六十七)

2010-12-30 21:13:27 · 作者: · 浏览: 36390
t」的位置索引(「File」从0开始)是1,因此如果即将显示「Edit」突现式功能表,那么lParam应该等於1。

为了确定是否启用「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」选