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

📄 index097.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%" border="1" cellspacing="1">
<tr><td><p align="center"><font color="#FF0000">如何控制菜单的大小?</font></td></tr>
<tr><td><p>
</Br>
我用MFC的CMenu生成了一个动态菜单(例如File,Edit,View...Help), 我想控制这个菜单的大小(长+高).<Br>
</Br>
方法一:查找 WM_MEASUREITEM 和 MEASUREITEMSTRUCT.<Br>
方法二:查询系统::GetSystemMetric(SM_CXMENUSIZE).<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 你可以通过如下代码来获得文本的大小:<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(A)获得被使用的字体 */<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NONCLIENTMETRICS ncm;<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HFONT hFontMenu;<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SIZE size;<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size.cy = size.cy = 0;<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(&ncm, 0, sizeof(NONCLIENTMETRICS));<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ncm.cbSize = sizeof(NONCLIENTMETRICS);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0))<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hFontMenu = CreateFontIndirect(&ncm.lfMenuFont);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(B) 获得菜单项的文本: */<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char szText[_MAX_PATH];<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pMenu->GetMenuString(0, szText, _MAX_PATH, MF_BYPOSITION);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后,获得菜单项文本的高度: */<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HFONT hFontOld;<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HDC hDC;<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hDC = ::GetDC(NULL);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hFontOld = (HFONT) ::SelectObject(hDC, hFontMenu);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetTextExtentPoint32(hDC, szText, lstrlen(szText), &size);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectObject(hDC, hFontOld);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::ReleaseDC(NULL, hDC);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*此时,size.cy即为高度,size.cx为宽度,你可以给菜单加上自定义的高度和宽度,通过比较,我发现宽度为4比较合适。*/<Br>
</Br>
</p></td></tr>
</table>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -