VS2005 添加右键快捷菜单

 一.在资源创建对话框中选择Menu项并单击New按钮自动创建ID为IDR_MENU1的菜单,为该菜单添加一个菜单项File,并在File菜单项下添加Cut,Copy和Paste三个菜单(为这三个菜单添加消息响应代码)

如:

void  CMenuView::OnCut()
{
   AfxMessageBox( "Cut" );  //弹出对话框
} void  CExampleDlg::OnCopy()
{
   AfxMessageBox( "Copy" );  //弹出对话框
} void  CExampleDlg::OnPaste()
{
   AfxMessageBox( "Paste" );  //弹出对话框
这儿的菜单响应函数应该关联到视类,因为视窗口是挡在框架窗口之上的。

二.先为视类添加WM_CONEXTMENU消息。当在窗口内右击时,窗口将接收到WM_CONTEXTMENU消息,在该消息的处理函数中装载右键菜单,并调用CMenu::TrackPopupMenu函数便可显示右键菜单,添加对话框WM_CONTEXTMENU消息处理函数的响应代码如下: 

void  CMenuView::OnContextMenu(CWnd* pWnd, CPoint point)
{
   CMenu menu;
   menu.LoadMenu(IDR_MENU1);  //读取资源
   menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON, 
      point.x, point.y,  this );  //弹出自定义右键菜单
}
不知道在函数最后为何不用detach().

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过QMenu类实现在QTableWidget上右键弹出快捷菜单的功能。以下是实现该功能的示例代码: ``` from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QMenu, QAction from PyQt5.QtCore import Qt class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.table = QTableWidget() self.table.setRowCount(3) self.table.setColumnCount(3) for i in range(3): for j in range(3): item = QTableWidgetItem("Item %d,%d" % (i, j)) self.table.setItem(i, j, item) self.setCentralWidget(self.table) # 创建快捷菜单 self.contextMenu = QMenu(self) self.deleteAction = QAction("删除", self) self.deleteAction.triggered.connect(self.deleteItem) self.contextMenu.addAction(self.deleteAction) # 将快捷菜单绑定到table上 self.table.setContextMenuPolicy(Qt.CustomContextMenu) self.table.customContextMenuRequested.connect(self.showContextMenu) self.show() def showContextMenu(self, pos): # 显示快捷菜单 self.contextMenu.exec_(self.table.mapToGlobal(pos)) def deleteItem(self): # 删除选中的item for item in self.table.selectedItems(): self.table.removeItemWidget(item) del item if __name__ == '__main__': app = QApplication([]) window = MainWindow() app.exec_() ``` 在该示例中,首先创建了一个QTableWidget并添加了一些数据。然后创建了一个QMenu作为快捷菜单,同时创建了一个QAction作为菜单项,并将其与一个deleteItem函数关联。该函数会删除选中的item。 接着将快捷菜单绑定到table上,当用户右键点击table时,就会触发customContextMenuRequested信号,从而显示快捷菜单。 最后,通过调用exec_方法显示快捷菜单,并在用户点击菜单项时调用deleteItem函数删除选中的item。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值