请教如何在工具栏中加文本编辑框?
解决方案 »
- MFC中,怎么可以用鼠标选中LIST的一行?
- 请问大家,在SliderCtrl类里的OnPaint()中怎样获取点击Thumb的状态.
- 如何 用 实现类似于 组态王的 一个软件 ,当然没有那末复杂,不知道如何下手
- WinPcap 编程堆栈错误 急急急!!!
- 询问:还有哪些VC++的专业论坛? 要知名的、人气高的
- Help! Help! 怎样打开一个*.bin文件,并且得到该文件的长度?谢谢!!!
- 多收了三五斗之大学生就业版
- 怎样将COLORREF格式存入注册表?
- CString, UpdateData() 等数据怎么定义到CCS中呢?
- 有专门讲API使用方法的书吗?谢谢!
- _beginthread和CreateThread的区别?
- 子菜单的怪问题
CEdit m_Edit;
在CMainFrame::OnCreate()中
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("未能创建工具栏\n");
return -1; // 未能创建
}
后面添加:
CToolBarCtrl &pTool = m_wndToolBar.GetToolBarCtrl();
TBBUTTON tButton;
ZeroMemory(&tButton, sizeof(TBBUTTON));
tButton.fsStyle = TBSTYLE_SEP;
tButton.idCommand = IDC_EDITBOX;
pTool.InsertButton(pTool.CommandToIndex(ID_FILE_PRINT), &tButton);
CRect rcButton;
pTool.GetItemRect(pTool.CommandToIndex(IDC_EDITBOX), rcButton);
int nWidth = 200;
for (int i = 0; i < nWidth / rcButton.Width(); i++)
{
pTool.InsertButton(pTool.CommandToIndex(ID_FILE_PRINT), &tButton);
}
pTool.InsertButton(pTool.CommandToIndex(ID_FILE_PRINT), &tButton);
rcButton.right += nWidth;
m_Edit.CreateEx(WS_EX_CLIENTEDGE, "EDIT", "Editbox", WS_VISIBLE | WS_CHILD, rcButton, &pTool, IDC_EDITBOX);
这里:IDC_EDITBOX是你的Edit Box的控件ID,可以在资源编辑器里添加;nWidth是要添加的编辑框的宽度;ID_FILE_PRINT是要添加的编辑框的位置后面的按钮ID。
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
HWND hEdit = m_wndToolBar.GetDlgItem(IDC_EDITBOX)->GetSafeHwnd();
if (pMsg->hwnd == hEdit)
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
CString strEdit;
m_wndToolBar.GetDlgItem(IDC_EDITBOX)->GetWindowText(strEdit);
AfxMessageBox(strEdit);//这里得到编辑框的内容随便怎么搞了。
}
} return CFrameWnd::PreTranslateMessage(pMsg);
}