设置弹出式菜单

BCMenu menu;
ClientToScreen(&pt);
menu.CreatePopupMenu();
UINT nFlag = MF_BYPOSITION;
//增加“取消缩放”菜单
menu.AppendMenu(nFlag, TEXT_MENU_ID_GROUP_BASE, "全选");
menu.AppendMenu(nFlag, TEXT_MENU_ID_GROUP_BASE+1, "复制        Ctrl+C");
int nItemID = menu.TrackPopupMenu( TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON | TPM_NONOTIFY | TPM_RETURNCMD, pt.x, pt.y, this);
if( TEXT_MENU_ID_GROUP_BASE == nItemID)
{
SetSel(0, GetTextLength());
SetFocus();
return;
}
else if( TEXT_MENU_ID_GROUP_BASE+1 == nItemID)
{
Copy();
return;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GUI菜单可以通过以下步骤设置: 1. 创建菜单栏和菜单项对象。使用Tkinter中的Menu和MenuItem类创建一个菜单栏和多个菜单项。 2. 将菜单项添加到菜单栏中。使用菜单栏的add_cascade()方法将菜单项添加到菜单栏中。 3. 为每个菜单项添加回调函数。使用菜单项的command属性指定回调函数。 4. 为需要菜单的GUI元素创建绑定事件。使用GUI元素的bind()方法为其绑定事件,例如右键单击事件。 5. 在事件处理函数中菜单。使用菜单的post()方法在指定位置菜单。 以下是一个简单的例子: ```python import tkinter as tk def show_popup_menu(event): popup_menu.post(event.x_root, event.y_root) root = tk.Tk() # 创建菜单栏和菜单项对象 menu_bar = tk.Menu(root) file_menu = tk.Menu(menu_bar, tearoff=0) edit_menu = tk.Menu(menu_bar, tearoff=0) # 将菜单项添加到菜单栏中 menu_bar.add_cascade(label="File", menu=file_menu) menu_bar.add_cascade(label="Edit", menu=edit_menu) # 为每个菜单项添加回调函数 def open_file(): print("Open file") def save_file(): print("Save file") file_menu.add_command(label="Open", command=open_file) file_menu.add_command(label="Save", command=save_file) edit_menu.add_command(label="Cut") edit_menu.add_command(label="Copy") edit_menu.add_command(label="Paste") # 为需要菜单的GUI元素创建绑定事件 text_box = tk.Text(root) text_box.bind("<Button-3>", show_popup_menu) # 创建菜单对象 popup_menu = tk.Menu(root, tearoff=0) popup_menu.add_command(label="Cut") popup_menu.add_command(label="Copy") popup_menu.add_command(label="Paste") root.config(menu=menu_bar) root.mainloop() ``` 在这个例子中,我们创建了一个菜单栏和两个菜单项,以及一个文本框作为GUI元素。我们将菜单项添加到菜单栏中,并为每个菜单项添加了一个回调函数。我们为文本框绑定了右键单击事件,并在事件处理函数中了一个菜单菜单包含了与编辑相关的菜单项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值