📄 index097.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>
/* 你可以通过如下代码来获得文本的大小:<Br>
(A)获得被使用的字体 */<Br>
</Br>
NONCLIENTMETRICS ncm;<Br>
HFONT hFontMenu;<Br>
SIZE size;<Br>
size.cy = size.cy = 0;<Br>
</Br>
memset(&ncm, 0, sizeof(NONCLIENTMETRICS));<Br>
ncm.cbSize = sizeof(NONCLIENTMETRICS);<Br>
if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0))<Br>
{<Br>
hFontMenu = CreateFontIndirect(&ncm.lfMenuFont);<Br>
/*<Br>
(B) 获得菜单项的文本: */<Br>
char szText[_MAX_PATH];<Br>
</Br>
pMenu->GetMenuString(0, szText, _MAX_PATH, MF_BYPOSITION);<Br>
/*<Br>
然后,获得菜单项文本的高度: */<Br>
HFONT hFontOld;<Br>
HDC hDC;<Br>
</Br>
hDC = ::GetDC(NULL);<Br>
hFontOld = (HFONT) ::SelectObject(hDC, hFontMenu);<Br>
GetTextExtentPoint32(hDC, szText, lstrlen(szText), &size);<Br>
SelectObject(hDC, hFontOld);<Br>
::ReleaseDC(NULL, hDC);<Br>
}<Br>
/*此时,size.cy即为高度,size.cx为宽度,你可以给菜单加上自定义的高度和宽度,通过比较,我发现宽度为4比较合适。*/<Br>
</Br>
</p></td></tr>
</table>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -