知识大全 在Dialog中使用Menu和Toolbar

Posted 菜单

篇首语:金鞍玉勒寻芳客,未信我庐别有春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Dialog中使用Menu和Toolbar相关的知识,希望对你有一定的参考价值。

在Dialog中使用Menu和Toolbar  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在Dialog中使用Menu和Toolbar 作者:xujian

                    我们先建立一个基于Dialog 的程序 我给他起了个名字叫:DlgMenuToolbar           一 如何往基于Dialog的程序添加菜单             [ ] 先添加菜单(IDR_MENU )资源 并加上需要的菜单项       [ ] 编辑对话框资源IDD_DLGMENUTOOLBAR_DIALOG的属性 在属性对话框中选择IDR_MENU 即可                      [ ] 假如您不希望在对话框属性中直接设置菜单 而通过代码在程序中动态生成可以采用如下方法:     
[ ]在CDlgMenuToolbarDlg类声名中添加成员变量CMenu           m_menu         再在CDlgMenuToolbarDlg::OnInitDialog() 中添加如下代码

  //加载菜单m_menu LoadMenu(IDR_MENU );//设置当前菜单SetMenu(&m_menu);//当你不需要菜单时可以用 SetMenu(NULL);来取消当前菜单

二 如何往基于Dialog的程序添加工具栏           [ ] 先添加工具栏(IDR_TOOLBAR )资源 并画好各个按钮       [ ] 在CDlgMenuToolbarDlg类声名中添加成员变量 CToolBar m_wndtoolbar;      [ ] 在CDlgMenuToolbarDlg::OnInitDialog() 中添加如下代码

  //添加一个平面工具条if (!m_wndtoolbar CreateEx( this TBSTYLE_FLAT  WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS    CRect( )) || !m_wndtoolbar LoadToolBar(IDR_TOOLBAR ) ) TRACE ("failed to create toolbar\\n"); return FALSE;m_wndtoolbar ShowWindow(SW_SHOW);RepositionBars(AFX_IDW_CONTROLBAR_FIRST AFX_IDW_CONTROLBAR_LAST );

三 为工具栏添加工具提示          [ ] 在CDlgMenuToolbarDlg类定义中手工添加消息映射函数的定义 如下黑体部分

  //AFX_MSG(CDlgMenuToolbarDlg) virtual BOOL OnInitDialog(); afx_msg void OnPaint(); afx_msg BOOL OnToolTipText(UINT NMHDR* pNMHDR LRESULT* pResult); //AFX_MSG DECLARE_MESSAGE_MAP()

     [ ] 在CDlgMenuToolbarDlg cpp添加函数的实现代码

  //工具栏提示BOOL CDlgMenuToolbarDlg::OnToolTipText(UINT NMHDR* pNMHDR LRESULT* pResult) ASSERT(pNMHDR >code == TTN_NEEDTEXTA || pNMHDR >code == TTN_NEEDTEX); // UNICODE消息 TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR; TOOLTIPTEX* pTT = (TOOLTIPTEX*)pNMHDR; //TCHAR szFullText[ ]; CString strTipText; UINT nID = pNMHDR >idFrom; if (pNMHDR >code == TTN_NEEDTEXTA && (pTTTA >uFlags & TTF_IDISHWND) || pNMHDR >code == TTN_NEEDTEX && (pTT >uFlags & TTF_IDISHWND)) // idFrom为工具条的HWND nID = ::GetDlgCtrlID((HWND)nID); if (nID != ) //不为分隔符 strTipText LoadString(nID); strTipText = strTipText Mid(strTipText Find(&# ;&# ;\\n&# ;&# ; )+ ); #ifndef _UNICODE if (pNMHDR >code == TTN_NEEDTEXTA) lstrcpyn(pTTTA >szText strTipText sizeof(pTTTA >szText)); else _mbstowcsz(pTT >szText strTipText sizeof(pTT >szText)); #else if (pNMHDR >code == TTN_NEEDTEXTA) _wcstombsz(pTTTA >szText strTipText sizeof(pTTTA >szText)); else lstrcpyn(pTT >szText strTipText sizeof(pTT >szText)); #endif *pResult = ; // 使工具条提示窗口在最上面 ::SetWindowPos(pNMHDR >hwndFrom HWND_TOP SWP_NOACTIVATE| SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); return TRUE; return TRUE;

[ ] 在CDlgMenuToolbarDlg cpp中添加消息映射 请看如下代码中的黑体部分 cha138/Article/program/c/201401/30258

相关参考

知识大全 利用JavaScript和CSS制作浮动menu

利用JavaScript和CSS制作浮动menu  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 WPF控件库之Toolbar

WPF控件库之Toolbar  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ToolBar控件是

知识大全 IE Toolbar

用VC开发IE浏览器插件:IEToolbar  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如果你下

知识大全 jquery ui dialog实现弹窗特效

  今天我们用jqueryuidialog来做一个弹窗特效我们先看下效果截图>  我们可以看到点击的时候弹窗出现而且这个弹窗是居中的还是可以拖动的实现这一切只要以下代码>  我们可以看到我对pop这个

知识大全 jquery ui dialog实现弹窗特效的思路及代码

这篇文章介绍了jqueryuidialog实现弹窗特效的思路及代码有需要的朋友可以参考一下   今天我们用jqueryuidialog来做一个弹窗特效我们先看下效果截图    我们可以看到点

知识大全 Flex 基于数据源的Menu Tree

Flex基于数据源的MenuTree  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  实现功能  

知识大全 Struts2里用struts menu须注意的地方

Struts2里用strutsmenu须注意的地方  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 红酒必备器具

Menu葡萄酒保冰袋像是一件专门给酒瓶穿的大衣,大衣里专门附有一件保冷的内层,可直接放置于冰箱内冷藏,待饮用时取出套在酒瓶上,即可达到冰镇效果,不失其应有风味。Philippi磁性葡萄酒瓶口套不锈钢镀

知识大全 myeclipse导入项目后中文乱码

  编码设置  全局编码设置编码设置的方法ToolBar>Window>Preferences>General>Workspace>Textfileencoding设置合

知识大全 js实现的常用的左侧导航效果

常用的左侧导航效果JS简单为提高导航性能而生各位可以参考应用效果展示 HTML:  复制代码代码如下:  <!左侧菜单><divclass=menu><ulcl