?????????有点难度??????????如何得到窗口菜单栏右边的区域大小RECT 我要自己绘制那个区域 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 菜单会换行的,如Notepad的菜单可能变成这样□--------------□□□| 文件(F) 编辑(E) || 格式(O) || 帮助(H) || |不知哪一个区域才是你要的 指的顶级菜□--------------□□□| 文件(F) 编辑(E) |□□□□□□##########################| 格式(O) || 帮助(H) || |也就是的所有"#"的宽度 void CYourWnd::OnNcPaint() { Default(); CMenu *pmenu = GetMenu(); int nItemCount = pmenu->GetMenuItemCount(); MENUBARINFO mbi; mbi.cbSize = sizeof(MENUBARINFO); GetMenuBarInfo(m_hWnd, OBJID_MENU, 0, &mbi); CRect rcMenuBar(mbi.rcBar); GetMenuBarInfo(m_hWnd, OBJID_MENU, 1, &mbi); int nHeight = mbi.rcBar.bottom - mbi.rcBar.top; int nLeft = mbi.rcBar.right; for(int n = 2; n <= nItemCount; n++) { GetMenuBarInfo(m_hWnd, OBJID_MENU, n, &mbi); if(mbi.rcBar.top > rcMenuBar.top) break; nLeft = mbi.rcBar.right; } CDC *pdc = GetWindowDC(); CRect rcWindow; GetWindowRect(rcWindow); CRect rcDraw(CPoint(nLeft - rcWindow.left, rcMenuBar.top - rcWindow.top), CSize(rcMenuBar.right - nLeft, nHeight)); pdc->Rectangle(rcDraw); ReleaseDC(pdc);}测试程序http://my.6to23.com/cigarette/md1.zip bcpl(闲庭信步) 高手佩服分数奉上! 我编译时候出现 MENUBARINFOGetMenuBarInfo未定义就直接编译你的程序怪这个结构和函书在WINDOWS.h里有定义 UI线程和工作者线程需要考虑同步问题吗? MFC如何禁止鼠标消息 关于Win32 的Dll 文件的问题 如果只有一个视图类一个文档类的程序 CListBox控件添加新列的函数是什么?参数怎么填? 关于强制类型转换后操作的问题 有关list ctrl 的几个问题 MFC下多线程写数据库 ado 老问题 怎样给对话框架上滚动条? CreateInstance失败 关于用户名的判断
| 文件(F) 编辑(E) |
| 格式(O) |
| 帮助(H) |
| |不知哪一个区域才是你要的
| 文件(F) 编辑(E) |□□□□□□##########################
| 格式(O) |
| 帮助(H) |
| |也就是的所有"#"的宽度
{
Default();
CMenu *pmenu = GetMenu();
int nItemCount = pmenu->GetMenuItemCount(); MENUBARINFO mbi;
mbi.cbSize = sizeof(MENUBARINFO); GetMenuBarInfo(m_hWnd, OBJID_MENU, 0, &mbi);
CRect rcMenuBar(mbi.rcBar);
GetMenuBarInfo(m_hWnd, OBJID_MENU, 1, &mbi);
int nHeight = mbi.rcBar.bottom - mbi.rcBar.top;
int nLeft = mbi.rcBar.right; for(int n = 2; n <= nItemCount; n++)
{
GetMenuBarInfo(m_hWnd, OBJID_MENU, n, &mbi);
if(mbi.rcBar.top > rcMenuBar.top)
break; nLeft = mbi.rcBar.right;
}
CDC *pdc = GetWindowDC();
CRect rcWindow;
GetWindowRect(rcWindow); CRect rcDraw(CPoint(nLeft - rcWindow.left, rcMenuBar.top - rcWindow.top), CSize(rcMenuBar.right - nLeft, nHeight));
pdc->Rectangle(rcDraw); ReleaseDC(pdc);
}测试程序
http://my.6to23.com/cigarette/md1.zip
MENUBARINFO
GetMenuBarInfo未定义就直接编译你的程序怪这个结构和函书在WINDOWS.h里有定义