|
10驿站币
如题,各位大佬,在SDI重绘时,想做成的预期效果是如下截图:
目前当前的效果如截图所示:
我的具体代码如下:
- int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
- #if 0
- // enable Windows XP look:
- CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerWindows));
- #else
- OnApplicationLook(theApp.m_nAppLook);
- #endif
- CMFCToolBar::EnableQuickCustomization ();
- //设置标题左侧图标
- m_hIcon = AfxGetApp()->LoadIcon(/*IDR_MAINFRAME*/IDR_MAINFRAME);
- SetIcon(m_hIcon, TRUE);
- SetIcon(m_hIcon, FALSE);
- //---------------------------------
- // Set toolbar and menu image size:
- //---------------------------------
- CMFCToolBar::SetSizes (CSize (28, 28), CSize (22, 22));
- CMFCToolBar::SetMenuSizes (CSize (22, 22), CSize (16, 16));
- // TODO: Define your own basic commands. Be sure, that each pulldown
- // menu have at least one basic command.
- CList<UINT, UINT> lstBasicCommands;
- lstBasicCommands.AddTail (ID_VIEW_TOOLBARS);
- lstBasicCommands.AddTail (ID_APP_EXIT);
- lstBasicCommands.AddTail (ID_APP_ABOUT);
- 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);
- lstBasicCommands.AddTail (ID_VIEW_CUSTOMIZE);
- lstBasicCommands.AddTail (ID_COMMAND_HISTORY);
- lstBasicCommands.AddTail (ID_VIEW_LARGEICON);
- lstBasicCommands.AddTail (ID_VIEW_SMALLICON);
- lstBasicCommands.AddTail (ID_VIEW_LIST);
- lstBasicCommands.AddTail (ID_VIEW_DETAILS);
- lstBasicCommands.AddTail (ID_EDIT_CUT);
- lstBasicCommands.AddTail (ID_EDIT_COPY);
- lstBasicCommands.AddTail (ID_EDIT_PASTE);
- CMFCToolBar::SetBasicCommands (lstBasicCommands);
- if (!m_wndMenuBar.Create(this/*, TBSTYLE_TRANSPARENT*/))
- {
- TRACE0("Failed to create menubar\n");
- return -1; // fail to create
- }
- m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC);
- // Remove menubar gripper and borders:
- m_wndMenuBar.SetPaneStyle (m_wndMenuBar.GetPaneStyle() &
- ~(CBRS_GRIPPER | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
- // Detect color depth. 256 color toolbars can be used in the
- // high or true color modes only (bits per pixel is > 8):
- CClientDC dc (this);
- BOOL bIsHighColor = dc.GetDeviceCaps (BITSPIXEL) > 8;
- UINT uiToolbarHotID = bIsHighColor ? IDB_TOOLBAR256 : 0;
- UINT uiToolbarColdID = bIsHighColor ? IDB_TOOLBARCOLD256 : 0;
- UINT uiMenuID = bIsHighColor ? IDB_MENU256 : IDB_MENU16;
- 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, uiToolbarColdID, uiMenuID, FALSE, 0, 0, uiToolbarHotID))
- {
- TRACE0("Failed to create toolbar\n");
- return -1; // fail to create
- }
- // Remove toolbar gripper and borders:
- m_wndToolBar.SetPaneStyle (m_wndToolBar.GetPaneStyle() &
- ~(CBRS_GRIPPER | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
- //----------------------------------------
- // Create a combo box for the address bar:
- //----------------------------------------
- if (!m_wndAddress.Create (CBS_DROPDOWN | WS_CHILD, CRect(0, 0, 200, 120), this, AFX_IDW_TOOLBAR + 1))
- {
- TRACE0("Failed to create combobox\n");
- return -1; // fail to create
- }
- m_wndAddress.EnableActiveAccessibility();
- // Each rebar pane will ocupy its own row:
- DWORD dwStyle = RBBS_GRIPPERALWAYS | RBBS_FIXEDBMP | RBBS_BREAK;
- if (!m_wndReBar.Create(this) ||
- !m_wndReBar.AddBar (&m_wndMenuBar) ||
- !m_wndReBar.AddBar (&m_wndToolBar, NULL, NULL, dwStyle) ||
- !m_wndReBar.AddBar(&m_wndAddress, _T("地址")/*_T("Address")*/, NULL, dwStyle))
- {
- TRACE0("Failed to create rebar\n");
- return -1; // fail to create
- }
- m_wndMenuBar.AdjustLayout ();
- m_wndToolBar.AdjustLayout ();
- // TODO: Remove this if you don't want chevrons:
- m_wndMenuBar.EnableCustomizeButton (TRUE, -1, _T(""));
- m_wndToolBar.EnableCustomizeButton (TRUE, -1, _T(""));
- if (!m_wndFoldersBar.Create (_T("文件"),
- this, CRect (0, 0, 400, 200), TRUE, ID_VIEW_FOLDERS, WS_CHILD | WS_VISIBLE | CBRS_LEFT | CBRS_HIDE_INPLACE | WS_CAPTION))
- {
- TRACE0("Failed to create folders bar\n");
- return -1; // fail to create
- }
- EnableDocking (CBRS_ALIGN_ANY);
- m_wndReBar.EnableDocking (CBRS_TOP);
- DockPane (&m_wndReBar);
- m_wndFoldersBar.EnableDocking (CBRS_LEFT | CBRS_RIGHT);
- DockPane (&m_wndFoldersBar);
- BOOL bValidString;
- CString strMainToolbarTitle;
- bValidString = strMainToolbarTitle.LoadString (IDS_MAIN_TOOLBAR);
- m_wndToolBar.SetWindowText (strMainToolbarTitle);
- // TODO: Remove this if you don't want tool tips
- m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() |
- CBRS_TOOLTIPS | CBRS_FLYBY);
- m_wndToolBar.SetPaneStyle(m_wndToolBar.GetPaneStyle() |
- CBRS_TOOLTIPS | CBRS_FLYBY);
- return 0;
- }
复制代码 请问各位大佬,如何在重绘时如何工具栏如何实现图标向上,文字在下呢?还有就是地址栏如何再加其他按钮或搜索框呢??麻烦各位大佬帮忙看看,小弟在此多谢了!
|
上一篇: 远程线程注入,加键盘钩子没反应,求大佬指点下一篇: TCPIP通讯 不知道接收数据大小 如何直到接收到回车换行符
|