⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 界面.htm

📁 VC的一些技巧性文档
💻 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>&nbsp;&nbsp;&nbsp;&nbsp;LPCREATESTRUCT lpCreateStruct)<Br>(<Br>&nbsp;&nbsp;&nbsp;if(!CPropertySheet::OnNcCreate(lpCreateStruct))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;//显式地定义此风格<Br>&nbsp;&nbsp;&nbsp;//CPropertySheet默认是关<Br>&nbsp;&nbsp;&nbsp;ModifyStyleEx(0, WS_EX_CONTEXTHELP);<Br>&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;BOOL m_bFullScreen;              //全屏幕显示标志<Br>&nbsp;&nbsp;&nbsp;&nbsp;CRect m_FullScreenWindowRect;    //全屏幕显示窗口Rect<Br>&nbsp;&nbsp;&nbsp;&nbsp;WINDOWPLACEMENT m_wpPrev;        //用于保存正常视图时的窗口位置信息<Br>&nbsp;&nbsp;&nbsp;&nbsp;CToolBar * m_wndFullScreenBar;   //全屏幕显示时的浮动工具条<Br></Br>成员函数:<Br>&nbsp;&nbsp;&nbsp;&nbsp;void OnMenuFullscreen();         //全屏幕显示的处理函数<Br>&nbsp;&nbsp;&nbsp;&nbsp;void OnGetMinMaxInfo();          //捕获WM_GETMINMAXINFO消息以便允许你增加窗口大小<Br>&nbsp;&nbsp;&nbsp;&nbsp;void OnUpdateViewFullScreen();   //更新“全屏幕显示”菜单的状态<Br></Br>源码<Br></Br>void CMainFrame::OnMenuFullscreen()<Br>{//全屏幕显示的处理函数<Br>&nbsp;&nbsp;&nbsp;&nbsp;RECT rectDesktop;<Br>&nbsp;&nbsp;&nbsp;&nbsp;WINDOWPLACEMENT wpNew;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;if (m_bFullScreen)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{//全屏幕显示模式<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//隐藏工具条和状态条<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndStatusBar.ShowWindow(SW_HIDE);<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndToolBar.ShowWindow(SW_HIDE);<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//保存正常视图时的窗口位置信息以便恢复原来状态<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetWindowPlacement (&m_wpPrev);<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wpPrev.length = sizeof m_wpPrev;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//调整RECT为新的窗口尺寸<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE, GetExStyle());<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//保存RECT以便OnGetMinMaxInfo()使用<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_FullScreenWindowRect = rectDesktop;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpNew = m_wpPrev;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpNew.showCmd = SW_SHOWNORMAL;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpNew.rcNormalPosition = rectDesktop;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//生成新的工具条<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndFullScreenBar=new CToolBar;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!m_wndFullScreenBar->Create(this, CBRS_SIZE_DYNAMIC|CBRS_FLOATING)<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|| !m_wndFullScreenBar->LoadToolBar(IDR_FULLSCREEN))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create toolbar\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; // fail to create<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//不允许工具条停泊<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndFullScreenBar->EnableDocking(FALSE);<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndFullScreenBar->SetWindowPos(0,100,100,0,0,SWP_NOSIZE<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|SWP_NOZORDER|SWP_NOACTIVATE|SWP_SHOWWINDOW);<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndFullScreenBar->SetWindowText(_T("全屏幕显示"));<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FloatControlBar(m_wndFullScreenBar, CPoint(100,100));<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_bFullScreen=TRUE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;else<Br>&nbsp;&nbsp;&nbsp;&nbsp;{//正常显示模式<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//删除全屏幕工具条<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndFullScreenBar->DestroyWindow();<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete m_wndFullScreenBar;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_bFullScreen=FALSE;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//恢复工具条和状态条<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndStatusBar.ShowWindow(SW_SHOWNORMAL);<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndToolBar.ShowWindow(SW_SHOWNORMAL);<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpNew = m_wpPrev;<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;//设置窗口显示状态<Br>&nbsp;&nbsp;&nbsp;&nbsp;SetWindowPlacement ( &wpNew );<Br>}<Br></Br>void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (m_bFullScreen)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br>}<Br></Br>void CMainFrame::OnUpdateMenuFullscreen(CCmdUI* pCmdUI)<Br>{//更新菜单的状态<Br>&nbsp;&nbsp;&nbsp;&nbsp;pCmdUI->Enable();<Br>&nbsp;&nbsp;&nbsp;&nbsp;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 + -