本文介绍了绘制MDI子窗口的“非客户"区域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何绘制MDI子窗口的非客户"区域,使其看起来像没有焦点".
我应该在MDI应用程序中手动重写哪些功能?
ON_WM_NCPAINT() // ... void CMainFrame::OnNcPaint() { // still want the menu to be drawn, so trigger default handler first Default(); // get menu bar bounds MENUBARINFO menuInfo = {sizeof(MENUBARINFO)}; if ( GetMenuBarInfo(OBJID_MENU, 0, &menuInfo) ) { CRect windowBounds; GetWindowRect(&windowBounds); CRect menuBounds(menuInfo.rcBar); menuBounds.OffsetRect(-windowBounds.TopLeft()); // horrible, horrible icon-drawing code. Don''t use this. Seriously. CWindowDC dc(this); HICON appIcon = (HICON)::LoadImage(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ::DrawIconEx(dc, menuBounds.right-18, menuBounds.top+2, appIcon, 0,0, 0, NULL, DI_NORMAL); ::DestroyIcon(appIcon); } }
Hi,
How to paint the Non client area of an MDI child window to make it look like "out of focus".
What functions should i override to do this manually in my MDI application?
解决方案
这篇关于绘制MDI子窗口的“非客户"区域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!