在mfc中怎样在工具条中添加静态文本

如题所述

在CMainFrame中加成员变量
CComboBox m_comboList;
CStatic m_static;
然后是OnCreate()中添加代码,注释掉的是添加下拉框的代码,如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
return -1;

BOOL bNameValid;
// 基于持久值设置视觉管理器和样式
OnApplicationLook(theApp.m_nAppLook);

if (!m_wndMenuBar.Create(this))
{
TRACE0("未能创建菜单栏\n");
return -1; // 未能创建
}

m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY);

// 防止菜单栏在激活时获得焦点
CMFCPopupMenu::SetForceMenuFocus(FALSE);

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(theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}

if (!m_myToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_myToolBar.LoadToolBar(IDR_MYTOOLBAR ))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}

CString strToolBarName;
bNameValid = strToolBarName.LoadString(IDS_TOOLBAR_STANDARD);
ASSERT(bNameValid);
m_wndToolBar.SetWindowText(strToolBarName);

CString strCustomize;
bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
ASSERT(bNameValid);
m_wndToolBar.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);

// 允许用户定义的工具栏操作:
InitUserToolbars(NULL, uiFirstUserToolBarId, uiLastUserToolBarId);

if (!m_wndStatusBar.Create(this))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
}
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));

// TODO: 如果您不希望工具栏和菜单栏可停靠,请删除这五行
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
m_myToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndMenuBar);
DockPane(&m_wndToolBar);
DockPane(&m_myToolBar);

// 启用 Visual Studio 2005 样式停靠窗口行为
CDockingManager::SetDockingMode(DT_SMART);
// 启用 Visual Studio 2005 样式停靠窗口自动隐藏行为
EnableAutoHidePanes(CBRS_ALIGN_ANY);

// 启用工具栏和停靠窗口菜单替换
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strCustomize, ID_VIEW_TOOLBAR);

// 启用快速(按住 Alt 拖动)工具栏自定义
CMFCToolBar::EnableQuickCustomization();

// if (CMFCToolBar::GetUserImages() == NULL)
// {
// // 加载用户定义的工具栏图像
// if (m_UserImages.Load(_T(".\\UserImages.bmp")))
// {
// m_UserImages.SetImageSize(CSize(16, 16), FALSE);
// CMFCToolBar::SetUserImages(&m_UserImages);
// }
// }

// 启用菜单个性化(最近使用的命令)
// TODO: 定义您自己的基本命令,确保每个下拉菜单至少有一个基本命令。
CList<UINT, UINT> lstBasicCommands;

lstBasicCommands.AddTail(ID_FILE_NEW);
lstBasicCommands.AddTail(ID_FILE_OPEN);
lstBasicCommands.AddTail(ID_FILE_SAVE);
lstBasicCommands.AddTail(ID_FILE_PRINT);
lstBasicCommands.AddTail(ID_APP_EXIT);
lstBasicCommands.AddTail(ID_EDIT_CUT);
lstBasicCommands.AddTail(ID_EDIT_PASTE);
lstBasicCommands.AddTail(ID_EDIT_UNDO);
lstBasicCommands.AddTail(ID_APP_ABOUT);
lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR);
lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2003);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_VS_2005);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLUE);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_SILVER);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLACK);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_AQUA);

CMFCToolBar::SetBasicCommands(lstBasicCommands);

int index = 0;
RECT rect;
//找到指定的工具项
while(m_myToolBar.GetItemID(index)!=ID_BUTTONCOMBO)
index++;
//设置指定工具项的宽度并获取新的区域 80是宽度
m_myToolBar.SetButtonInfo(index, ID_BUTTONCOMBO, TBBS_SEPARATOR, 60);
m_myToolBar.GetItemRect(index, &rect);

//设置位置
// rect.top+=2;
// rect.bottom += 200;
rect.left = 0;
rect.top = 2;
rect.right = 60;
rect.bottom = 200;
// 创建并显示控件
if(!m_static.Create("static",WS_CHILD|WS_VISIBLE,rect,&m_myToolBar,100034))
return false;
m_static.ShowWindow(SW_SHOW);

// if(!m_comboList.Create(WS_CHILD|WS_VISIBLE| CBS_AUTOHSCROLL| CBS_DROPDOWNLIST | CBS_HASSTRINGS , rect,
// &m_myToolBar, ID_BUTTONCOMBO))
// {
// TRACE0("Failed to create combo-box\n");
// return FALSE;
// }
//
// //填充内容
//
// m_comboList.AddString("25%");
// m_comboList.AddString("50%");
// m_comboList.AddString("75%");
// m_comboList.AddString("100%");
// m_comboList.AddString("125%");
// m_comboList.AddString("150%");
// m_comboList.AddString("175%");
// m_comboList.AddString("200%");
//
// //选择默认项
// m_comboList.SetCurSel(3);
// m_comboList.ShowWindow(SW_SHOW);

return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-26
直接拖过来就行了啊。
第2个回答  2011-07-26
工具条中添加静态文本???不是有一个static Text(显示图标是Aa)么?这就是静态文本啊-

在mfc中怎样在工具条中添加静态文本
\/\/ 启用工具栏和停靠窗口菜单替换 EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strCustomize, ID_VIEW_TOOLBAR);\/\/ 启用快速(按住 Alt 拖动)工具栏自定义 CMFCToolBar::EnableQuickCustomization();\/\/ if (CMFCToolBar::GetUserImages() == NULL)\/\/ { \/\/ \/\/ 加载用户定义的工具栏图像 \/\/ if...

vc++6.0怎么给MFC工程中对话框添加静态文本控件
工具栏上点击右键,选择“控件",英文版的话是"Control"将控件工具栏上的”静态文本“控件拉到对话框上即可。

MFC如何弄滚动滑动条然后在静态文本框中显示文字?
1、滚动条是自己创建窗口时要加的一个参数,用函数CreateWindow 2、在static控件中显示文字用函数SetWindowText ,注意不要弄错句柄,这个函数好像不需要句柄,自己看MSDN

MFC如何将TXT文件中的内容添加到static TEXT中
c读写txt文档,搜一下,就用c语言库函数也行。mfc下还可以搜一搜CStdioFile和CFile怎么读写txt。至于输出至static TEXT 添加了控件,使用类向导添加CString关联变量,只需要把读取的字符串赋值给那个变量,调用:UpdateData(TRUE);具体的,百度:vc 静态文本控件 另外,我这里有个曾经做的库,只要在txt文...

如何在MFC中添加IDC
MFC里边不是有个可视化的界面编辑器?在资源视图里边,将静态文本控件拖入你的对话框中,将其ID改成IDC_STATIC_POS就好了。

在MFC里面,如果在静态文本里显示电脑时间,要具体步骤很具体的步骤,谢谢...
1,添加静态文本控件(假设ID为IDC_EDIT),定义CString mSTR ,时间结构LPSYSTEMTIME lpSystemTime 2,获取时间 GetSystemTime(lpSystemTime)3,填写结构 mSTR .format("%d:%d:%d",lpSystemTime->wHour,lpSystemTime->wMinute,lpSystemTime->wSecond )4,((CEdit*)GetDlgItem(IDC_EDIT))->SetWindowText(mSTR...

如何用MFC做一个进度条
1、新建工程,选择MFCAppWizard,输入工程名,点击确定;2、选择基本对话框,然后点击完成;3、在对话框中添加3个静态文本、3个编辑框、一个进度条和一个按钮控件为3个编辑框控件和进度条控件添加变量;4、为开始按钮添加单击事件,使进度随着编辑框中的设置进行变化;5、运行程序,输入起始位置、结束位置...

...是在框里建一个动态文本的还是静态文本然后怎么办
先把文本框属性改为多行显示,且有竖直滚动条。你的文本框的ID错了。IDC_BUTTON1是按钮的ID,不是编辑框的ID。假设你的编辑框ID是IDC_EDIT1, 则试试 SetDlgItemText(IDC_EDIT1,pBuf);

MFC文本框显示文字格式的问题
首先将\\n\\n换成\\r\\n 然后将编辑框属性中Mutiline、Horizontal scroll、Auto HScroll、Vertical scroll、Auto VScroll、Want return全部复选上就可以了

MFC中如何给静态文本框添加消息响应
1.右键选中需要添加响应事件函数的static控件。2.在弹出来的菜单栏中选择“添加事件处理程序”;3.在弹出来的向导中,有一个消息类型选择框。STN_CLICKED(单击事件);STN_DBLCLK(双击事件);STN_ENABLE(可用);按照需求,选择响应的消息类型。4、选择完消息类型后,点击右下角“添加编辑”。即可编辑...

相似回答