文档详情

dialog添加菜单状态栏.doc

发布:2017-06-07约4.75千字共5页下载文档
文本预览下载声明
1,添加菜单 有多种方法 (1:在resource View中选中对话框属性的 menu 属性 (2:CMenu??? m_Menu; ?????? m_Menu.LoadMenu(IDR_MAIN_MENU); ??????? SetMenu(m_Menu); ?????? 取消菜单 SetMenu(NULL); 2,添加状态栏 在头文件添加 /** 状态栏*/ CStatusBar m_wndStatusBar; ?? 。CPP文件中添加 /** 状态栏*/ if (!m_wndStatusBar.Create(this) || ??????? !m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)) ??????? ) { ?? TRACE0(Failed to create status bar\n); ?? return -1;????? // fail to create } 3.WM_MENUSELECT消息 ???? 这样手动添加的状态栏,无法接收WM_MENUSELECT消息,所以我们要自己添加 ON_WM_MENUSELECT() 响应的消息函数 /** * 菜单栏选择 */ void CFilePlayerDlg::OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSystemMenu) { CString sFileName; if(nItemID == AFX_IDS_IDLEMESSAGE) { ?? sFileName = L就绪; ?? SendMessage(WM_SETMESSAGESTRING, (WPARAM)0, (LPARAM)(LPCTSTR)sFileName); ?? return ; } if(nFlags MF_SEPARATOR) ?? return ; if(nFlags (MF_SYSMENU | MF_POPUP)) ?? return ; CString?? strStatusText;?? strStatusText.LoadString( nItemID);??? m_wndStatusBar.SetPaneText(0, strStatusText);// // SendMessage(WM_SETMESSAGESTRING, (WPARAM)0, (LPARAM)(LPCTSTR)strStatusText); return ; } 这样就获得了菜单的提示内容,m_wndStatusBar.SetPaneText(0, strStatusText); //将菜单提示显示在状态栏第一个窗格。当然自己可以指定其它窗格, 如果用 SendMessage(WM_SETMESSAGESTRING, (WPARAM)0, (LPARAM)(LPCTSTR)strStatusText); 发送 WM_SETMESSAGESTRING消息也可实现, 需要自己添加该消息的响应函数 如下: ON_MESSAGE(WM_SETMESSAGESTRING, OnSetMessageString) // 消息宏 消息处理函数 LRESULT CFilePlayerDlg::OnSetMessageString(WPARAM wParam, LPARAM lParam) { LPCTSTR lpsz = NULL; CString strMessage; if (lParam != 0) { ?? ASSERT(wParam == 0);??? // cant have both an ID and a string ?? lpsz = (LPCTSTR)lParam; // set an explicit string } else if (wParam != 0) { ?? { ??? LPTSTR lpsz = strMessage.GetBuffer(255); ??? if (AfxLoadString(wParam, lpsz) != 0) ??? { ???? lpsz = _tcschr(lpsz, _T(\n)); ???? if (lpsz != NULL) ????? *lpsz = \0; ??? } ??? else ??? { ????? TRACE1(Warning: no message line prompt for ID 0x%04X.\n, wParam); ??? } ??? strMessage.ReleaseBuffer();?? ?? } ?? lpsz = strMessage; } m_wn
显示全部
相似文档