菜单
系统菜单
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
右键菜单
1、 给控件WM_CONTEXTMENU消息添加事件::OnContextMenu()。
2、 弹出菜单
CMenu popMenu;
popMenu.LoadMenu(IDR_MENU1);
CMenu* pSubMenu = popMenu.GetSubMenu(0);
pSubMenu->TrackPopupMenu(TPM_LEFTBUTTON | TPM_LEFTALIGN, point.x, point.y, this);
popMenu.DestroyMenu();
动态修改菜单
AppendMenu(见系统菜单)、DeleteMenu、ModifyMenu
工具栏
修改图标
定义变量:
CImageList m_Imagelist; // 注意不要提前析构;一般作为成员变量。
CToolBar m_wndToolBar;
创建:
//创建图像列表,向图像列表中添加图标
m_Imagelist.Create(32, 32, ILC_COLOR24 | ILC_MASK, 0, 1);
for (int i = 0; i < 9; i++)
{
m_Imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1+i));
}
//创建工具栏
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar/n");
return -1; // fail to create
}
m_wndToolBar.GetToolBarCtrl().SetImageList(&m_Imagelist);
m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(40, 40));
m_wndToolBar.GetToolBarCtrl().SetBitmapSize(CSize(30, 30));
状态栏
设置文字
m_statusBar.SetPaneInfo(3, 111, SBPS_NORMAL, 800);
m_statusBar.SetPaneText(0,"1");
m_statusBar.SetPaneText(1,"2");
m_statusBar.SetPaneText(2,"3");
显示进度条:(移动文字,图片类似,移动到任务栏上即可)
CRect Rect;
m_StatusBar.GetStatusBarCtrl().GetRect(3,&Rect);
CRect ProgRect(Rect.left,2,Rect.right,Rect.Height()+2);
m_Progress.Create(PBS_SMOOTH,ProgRect,&m_StatusBar,111);
m_Progress.ShowWindow(SW_SHOW);
m_Progress.SetRange(0,100);
m_Progress.SetPos(50);
//显示状态栏
this->Invalidate();