📄 界面.htm
字号:
<html><style type="text/css"><!--.p9 { font-family: "宋体"; font-size: 9pt}a {text-transform: none; text-decoration: none;}a:hover {text-decoration: underline; color: #FF0000;}--></style><body background="di2001.jpg"><h3 align="center"><font COLOR="#AOAO99">界面</font></h3><table width="100%"><tr><td><font color="0000FF"><a name="1">在MFC加入"这是什么?"的帮助提示 <Br>Davide Marcato 翻译:Yu Hail</a></font></td></tr><tr><td><p></Br>MFC在CPropertySheet中封装了属性,但不支持标题的"这是什么?"帮助提示.函数CPropertySheet::OnNcCreate()屏蔽了扩展风格WS_EX_CONTEXTHELP, 因此,即使你在构造函数中加入了扩展风格,它也不能出现在窗口中.<Br></Br>解决方法很简单,在继承类中设置好风格位,如下所示:<Br></Br>BOOL CWhatsThisPropertySheet::OnNcCreate(<Br> LPCREATESTRUCT lpCreateStruct)<Br>(<Br> if(!CPropertySheet::OnNcCreate(lpCreateStruct))<Br> return FALSE;<Br> //显式地定义此风格<Br> //CPropertySheet默认是关<Br> ModifyStyleEx(0, WS_EX_CONTEXTHELP);<Br> return true;<Br>)<Br></Br></p></td></tr><tr><td><font color="0000FF"><a name="2">精通工具条<Br>Kate Gregory 翻译:Yu Hail</a></font></td></tr><tr><td><p></Br>VC++的工具条有很多特性,但有时候也会让你感到困惑. 这里有一些使它们服服贴贴的小技巧.<Br></Br>要移走一个工具条项,只须将它拖到空工具条的右边,然后点击右上角的关闭按钮.<Br>注意显示在浮动工具条菜单条上的工具条的名称,可以通过右击菜单条来关闭 一个工具条,使之挂起.<Br>反过来,激活一个挂起的工具条,右击你菜单条或另一个工具条,然后选中 你想看到的工具条的名字.<Br>如果你想同时开关好几个工具条,不用一个一个地去右击,使用菜单上的工具, 用户化菜单命令,会出现工具条制表顺序对话框,然后进行选择. 这个对话框也允许挂起干扰你的工具条,或者增大看不见工具条按钮的图标.<Br>你可以在调试时使用和编辑代码时不同的工具条布局,而二者不互相干扰.<Br>当你发现浮动工具条停在不期望的位置时,按住Ctrl键,然后用鼠标将它移到旁边去, 当你停下来的时候,它不再回去,即使你把它放在另一个工具条的上面.<Br></Br></Br></p></td></tr><tr><td><font color="0000FF"><a name="3">如何改变视窗的背景颜色 </a></font></td></tr><tr><td><p></Br>Windows向窗口发送一个WM_ERASEBKGND消息通知该窗口擦除背景,可以使用<Br></Br>ClassWizard重载该消息的缺省处理程序来擦除背景(实际是画),并返回TRUE以<Br></Br>防止Windows擦除窗口。<Br></Br>//Paint area that needs to be erased.<Br></Br>BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)<Br></Br>{<Br></Br>// Create a pruple brush.<Br></Br>CBrush Brush (RGB (128 , 0 , 128) );<Br></Br>// Select the brush into the device context .<Br></Br>CBrush* pOldBrush = pDC—>SelcetObject (&brush);<Br></Br>// Get the area that needs to be erased .<Br></Br>CRect reClip ;<Br></Br>pDC—>GetCilpBox (&rcClip);<Br></Br>//Paint the area.<Br></Br>pDC—> PatBlt (rcClip.left , rcClip.top ,<Br></Br>rcClip.Width ( ) , rcClip.Height ( ) , PATCOPY );<Br></Br>//Unselect brush out of device context .<Br></Br>pDC—>SelectObject (pOldBrush );<Br></Br>// Return nonzero to half fruther processing .<Br></Br>return TRUE;<Br></Br>}<Br></Br></Br></Br></Br></p></td></tr><tr><td><font color="0000FF"><a name="4">为MFC应用程序添加全屏幕显示功能 </a></font></td></tr><tr><td><p></Br>在CMainFrame类中添加下列成员变量和成员函数(使用ClassWizard),下面是这些变量和函数的功能说明:<Br></Br>成员变量:<Br> BOOL m_bFullScreen; //全屏幕显示标志<Br> CRect m_FullScreenWindowRect; //全屏幕显示窗口Rect<Br> WINDOWPLACEMENT m_wpPrev; //用于保存正常视图时的窗口位置信息<Br> CToolBar * m_wndFullScreenBar; //全屏幕显示时的浮动工具条<Br></Br>成员函数:<Br> void OnMenuFullscreen(); //全屏幕显示的处理函数<Br> void OnGetMinMaxInfo(); //捕获WM_GETMINMAXINFO消息以便允许你增加窗口大小<Br> void OnUpdateViewFullScreen(); //更新“全屏幕显示”菜单的状态<Br></Br>源码<Br></Br>void CMainFrame::OnMenuFullscreen()<Br>{//全屏幕显示的处理函数<Br> RECT rectDesktop;<Br> WINDOWPLACEMENT wpNew;<Br></Br> if (m_bFullScreen)<Br> {//全屏幕显示模式<Br> //隐藏工具条和状态条<Br> m_wndStatusBar.ShowWindow(SW_HIDE);<Br> m_wndToolBar.ShowWindow(SW_HIDE);<Br></Br> //保存正常视图时的窗口位置信息以便恢复原来状态<Br> GetWindowPlacement (&m_wpPrev);<Br> m_wpPrev.length = sizeof m_wpPrev;<Br></Br> //调整RECT为新的窗口尺寸<Br> ::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );<Br> ::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE, GetExStyle());<Br></Br> //保存RECT以便OnGetMinMaxInfo()使用<Br> m_FullScreenWindowRect = rectDesktop;<Br></Br> wpNew = m_wpPrev;<Br> wpNew.showCmd = SW_SHOWNORMAL;<Br> wpNew.rcNormalPosition = rectDesktop;<Br></Br> //生成新的工具条<Br> m_wndFullScreenBar=new CToolBar;<Br></Br> if(!m_wndFullScreenBar->Create(this, CBRS_SIZE_DYNAMIC|CBRS_FLOATING)<Br> || !m_wndFullScreenBar->LoadToolBar(IDR_FULLSCREEN))<Br> {<Br> TRACE0("Failed to create toolbar\n");<Br> return; // fail to create<Br> }<Br></Br> //不允许工具条停泊<Br> m_wndFullScreenBar->EnableDocking(FALSE);<Br> m_wndFullScreenBar->SetWindowPos(0,100,100,0,0,SWP_NOSIZE<Br> |SWP_NOZORDER|SWP_NOACTIVATE|SWP_SHOWWINDOW);<Br> m_wndFullScreenBar->SetWindowText(_T("全屏幕显示"));<Br> FloatControlBar(m_wndFullScreenBar, CPoint(100,100));<Br> m_bFullScreen=TRUE;<Br> }<Br> else<Br> {//正常显示模式<Br> //删除全屏幕工具条<Br> m_wndFullScreenBar->DestroyWindow();<Br> delete m_wndFullScreenBar;<Br></Br> m_bFullScreen=FALSE;<Br></Br> //恢复工具条和状态条<Br> m_wndStatusBar.ShowWindow(SW_SHOWNORMAL);<Br> m_wndToolBar.ShowWindow(SW_SHOWNORMAL);<Br> wpNew = m_wpPrev;<Br> }<Br></Br> //设置窗口显示状态<Br> SetWindowPlacement ( &wpNew );<Br>}<Br></Br>void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)<Br>{<Br> if (m_bFullScreen)<Br> {<Br> lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();<Br> lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;<Br> lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();<Br> lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;<Br> }<Br>}<Br></Br>void CMainFrame::OnUpdateMenuFullscreen(CCmdUI* pCmdUI)<Br>{//更新菜单的状态<Br> pCmdUI->Enable();<Br> pCmdUI->SetCheck(m_bFullScreen);<Br>}<Br></p></td></tr></table><p align="center"><img src="/logo.gif" align="center"><a href="/co/index.htm">北京美达美科技有限公司</a> 版权所有: 1998-1999</a></p></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -