在线等待!
解决即给分。
解决即给分。
解决方案 »
- 粉菜粉菜的问题,大家表笑我,来帮我
- 获取IWebBrowse2接口后的错误!求教高人指点(迷惑中)
- 请问:怎样把一个CString类型变为const_variant_t&?谢谢!!
- richtext接收键盘输入字符的消息处理函数是什么?一个对话框中如何加入一个新建的工具条件?
- 关于实时数据采集及实时图形显示的问题 求助!
- 我给大家弄了些电影!!!!
- 关于界面字体颜色的问题:
- 谁有定时执行的类,例如每星期,每天等的固定时间?
- 紧急求救:想捕获用户在CFileDialog类型的对话框上的操作,有办法吗?
- this->OnCtlColor(dc,hwnd,CTLCOLOR_STATIC);postmessage(WM_CtlColor)
- 如何在基于对话框的MFC程序中使用工具栏?
- 如何在对话框程序里面加入工具栏?
在资源中加一个菜单
对话框属性-> menu
在OnInitDialog()函数中添加如下代码(两种工具栏)
1. // 创建工具条并调入资源
if(!m_wndToolBar1.Create(this) || !m_wndToolBar1.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to Create Dialog Toolbar\n");
EndDialog(IDCANCEL);
} CRect rcClientOld; // 旧客户区RECT
CRect rcClientNew; // 加入TOOLBAR后的CLIENT RECT
GetClientRect(rcClientOld); //
//重新计算RECT大小
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rcClientNew);//所有的子窗口将被移动,以免被TOOLBAR覆盖
// Offest to move all child controls after adding Tollbar
//计算移动的距离
CPoint ptOffset(rcClientNew.left-rcClientOld.left,
rcClientNew.top-rcClientOld.top);CRect rcChild;
CWnd* pwndChild = GetWindow(GW_CHILD); //得到子窗口
while(pwndChild) // 处理所有子窗口
{//移动所有子窗口
pwndChild->GetWindowRect(rcChild);
ScreenToClient(rcChild);
rcChild.OffsetRect(ptOffset);
pwndChild->MoveWindow(rcChild,FALSE);
pwndChild = pwndChild->GetNextWindow();
}CRect rcWindow;
GetWindowRect(rcWindow); // 得到对话框RECT
rcWindow.right += rcClientOld.Width() - rcClientNew.Width(); // 修改对话框尺寸
rcWindow.bottom += rcClientOld.Height() - rcClientNew.Height();
MoveWindow(rcWindow,FALSE); // Redraw WindowRepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);2. //添加一个平面工具条
if (!m_wndToolBar2.CreateEx( this,TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,
CRect(8,8,0,0)) || !m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2) )
{
TRACE0("failed to create toolbar\n");
return FALSE;
}
m_wndToolBar2.ShowWindow(SW_SHOW);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);