ShowPopupMenu显示自己创建的右键菜单

 我们一般采用下面的语句弹出右键菜单:

theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_MY_VIEW, point.x, point.y, pWnd, TRUE);

其中IDR_POPUP_MY_VIEW为自己创建的弹出菜单。

但是直接使用是无法显示自己创建的菜单的,这是因为自己创建的菜单还没有被添加到系统菜单里。

我们可以在APP类里的

PreLoadState()

函数里面添加下面的语句,将自己创建的菜单添加到系统菜单里面,就可以显示了。

GetContextMenuManager()->AddMenu(_T("MenuMy"), IDR_POPUP_MY_VIEW);  


 

以下是Java Swing中实现文本复制粘贴功能的示例代码: ```java import java.awt.*; import java.awt.datatransfer.*; import java.awt.event.*; import javax.swing.*; public class TextCopyPasteExample extends JFrame { private JTextArea textArea; private JPopupMenu popupMenu; private JMenuItem copyItem; private JMenuItem pasteItem; public TextCopyPasteExample() { // 创建文本区域 textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); getContentPane().add(scrollPane, BorderLayout.CENTER); // 创建弹出菜单 popupMenu = new JPopupMenu(); copyItem = new JMenuItem("复制"); pasteItem = new JMenuItem("粘贴"); popupMenu.add(copyItem); popupMenu.add(pasteItem); // 添加菜单项的事件监听器 copyItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { copyText(); } }); pasteItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pasteText(); } }); // 添加弹出菜单的触发器 textArea.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { showPopupMenu(e); } public void mouseReleased(MouseEvent e) { showPopupMenu(e); } }); // 设置窗口属性 setTitle("文本复制粘贴示例"); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } // 显示弹出菜单 private void showPopupMenu(MouseEvent e) { if (e.isPopupTrigger()) { popupMenu.show(e.getComponent(), e.getX(), e.getY()); } } // 复制文本到剪切板 private void copyText() { StringSelection selection = new StringSelection(textArea.getSelectedText()); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(selection, null); } // 从剪切板粘贴文本 private void pasteText() { Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable contents = clipboard.getContents(null); if (contents != null && contents.isDataFlavorSupported(DataFlavor.stringFlavor)) { try { String text = (String) contents.getTransferData(DataFlavor.stringFlavor); textArea.replaceSelection(text); } catch (Exception ex) { ex.printStackTrace(); } } } public static void main(String[] args) { new TextCopyPasteExample(); } } ``` 该示例中创建了一个JFrame窗口,并在其中添加了一个JTextArea文本区域,通过添加鼠标事件监听器,在鼠标右键点击时弹出复制粘贴的弹出菜单。在复制和粘贴的方法中,通过Java提供的Clipboard类和Transferable接口实现将文本复制到剪切板和从剪切板中粘贴文本的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值