一个关于右健菜单的问题

checkyvc6 2002-12-21 02:53:09
我再做一个基于对话框的程序(用的是mfc)时,用模板选择对话框属性为popup和边框为none.这样就没有了标题兰和边框
这样窗口最小化到任务栏后用右键不会出现系统菜单,请问高手门,怎样做或者在什么消息里面处理才能出现自己做的菜单
...全文
46 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingcom_xu 2002-12-23
  • 打赏
  • 举报
回复
SetWindowText
checkyvc6 2002-12-23
  • 打赏
  • 举报
回复
这样的话,最小化只显示图标,不会显示应用程序的名字
如果我要在最小化后在上面写上名字,那该怎么办呢?
riverboat 2002-12-21
  • 打赏
  • 举报
回复
楼上的说得很对。另外加入WS_MINIMIZEBOX风格以后点击任务栏上对应的按钮就可以实现窗口的最小化和还原切换(win98或win2000中):

ModifyStyle(0,WS_SYSMENU | WS_MINIMIZEBOX,0);
zPerry 2002-12-21
  • 打赏
  • 举报
回复
GZ
kingcom_xu 2002-12-21
  • 打赏
  • 举报
回复
在InitDialog中加入 ModifyStyle(0,WS_SYSMENU);
puyinghua 2002-12-21
  • 打赏
  • 举报
回复
参考
LRESULT CServerDlg::OnSystemTray(WPARAM wParam, LPARAM lParam)
{

if(wParam=ID_SYSTEMTRAY)
{
switch(lParam)
{
case WM_LBUTTONDBLCLK:
{
KillTimer(0);
NOTIFYICONDATA nid;
nid.cbSize=sizeof(NOTIFYICONDATA);
nid.hWnd=m_hWnd;
nid.uID=ID_SYSTEMTRAY;
nid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
nid.uCallbackMessage=WM_SYSTEMTRAY;
nid.hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);
strcpy(nid.szTip,"网际飞标");
::Shell_NotifyIcon(NIM_MODIFY,&nid);
::ShowWindow(m_hWnd,SW_NORMAL);

}
break;
case WM_RBUTTONDOWN:
{
CMenu pMenu;
pMenu.LoadMenu(IDR_MENU1);
CMenu* pMenu1=pMenu.GetSubMenu(0);
ASSERT(pMenu1!=NULL);
CPoint point;
GetCursorPos(&point);
pMenu1->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
break;
}
default:
break;
}
}
return 1;
}
醉马不肖 2002-12-21
  • 打赏
  • 举报
回复
应用别人的代码:

void CXPStyleView::OnRButtonUp(UINT nFlags, CPoint point)
{
CItemInfo t_ItemInfo[8];

CXPMenu t_Menu;
t_Menu.CreatePopupMenu();

t_ItemInfo[0].sText = "新建(&N)\tCtrl + N";
t_ItemInfo[0].uIdNormal = IDI_ICON1;
t_ItemInfo[0].uIdSelect = IDI_ICON2;
t_Menu.AppendMenu(MF_OWNERDRAW, 0, (LPCTSTR)(&(t_ItemInfo[0])));

t_ItemInfo[1].sText = "打开(&O)\tCtrl + O";
t_ItemInfo[1].uIdNormal = IDI_ICON3;
t_ItemInfo[1].uIdSelect = IDI_ICON4;
t_Menu.AppendMenu(MF_OWNERDRAW, 1, (LPCTSTR)(&(t_ItemInfo[1])));

t_ItemInfo[2].sText = "保存(&S)\t Ctrl + S";
t_ItemInfo[2].uIdNormal = IDI_ICON5;
t_ItemInfo[2].uIdSelect = IDI_ICON6;
t_Menu.AppendMenu(MF_OWNERDRAW, 2, (LPCTSTR)(&(t_ItemInfo[2])));

t_ItemInfo[3].sText = "播放(&P)";
t_ItemInfo[3].uIdNormal = IDI_ICON7;
t_ItemInfo[3].uIdSelect = IDI_ICON8;
t_Menu.AppendMenu(MF_OWNERDRAW, 3, (LPCTSTR)(&(t_ItemInfo[3])));

t_ItemInfo[4].sText = "暂停(&A)";
t_ItemInfo[4].uIdNormal = IDI_ICON9;
t_ItemInfo[4].uIdSelect = IDI_ICON10;
t_Menu.AppendMenu(MF_OWNERDRAW, 4, (LPCTSTR)(&(t_ItemInfo[4])));

t_ItemInfo[5].sText = "停止(&S)";
t_ItemInfo[5].uIdNormal = IDI_ICON11;
t_ItemInfo[5].uIdSelect = IDI_ICON12;
t_Menu.AppendMenu(MF_OWNERDRAW, 5, (LPCTSTR)(&(t_ItemInfo[5])));

t_ItemInfo[6].sText = "上一首(&B)";
t_ItemInfo[6].uIdNormal = IDI_ICON13;
t_ItemInfo[6].uIdSelect = IDI_ICON14;
t_Menu.AppendMenu(MF_OWNERDRAW, 6, (LPCTSTR)(&(t_ItemInfo[6])));

t_ItemInfo[7].sText = "下一首(&N)";
t_ItemInfo[7].uIdNormal = IDI_ICON15;
t_ItemInfo[7].uIdSelect = IDI_ICON16;
t_Menu.AppendMenu(MF_OWNERDRAW, 7, (LPCTSTR)(&(t_ItemInfo[7])));

CPoint ptScreen(point);
ClientToScreen(&ptScreen);
t_Menu.TrackPopupMenu(TPM_RIGHTBUTTON, ptScreen.x, ptScreen.y, this);

CView::OnRButtonUp(nFlags, point);
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧