下面是效果图
这是字符输出代码:
::DrawText(pDIS->hDC, pMenuItem->szMenuText, -1, \
rcText, DT_SINGLELINE|DT_LEFT|DT_VCENTER|DT_EXPANDTABS);已经试过很多方法了,但快捷键就是不往右靠,有什么办法解决呢?
PS:老规矩,开帖20分意思意思,有答案时另+100分,谢谢!
这是字符输出代码:
::DrawText(pDIS->hDC, pMenuItem->szMenuText, -1, \
rcText, DT_SINGLELINE|DT_LEFT|DT_VCENTER|DT_EXPANDTABS);已经试过很多方法了,但快捷键就是不往右靠,有什么办法解决呢?
PS:老规矩,开帖20分意思意思,有答案时另+100分,谢谢!
// 处理菜单高度及宽度
void CMenuBarCtrl::MeasureItem(HWND hWnd, MEASUREITEMSTRUCT *pMIS)
{
POPMENUITEM *pMenuItem = (POPMENUITEM *)pMIS->itemData; if(pMenuItem->uID == 0) // 分隔条
{
pMIS->itemHeight = 6;
} else { // 菜单内容
// 获得工具栏上下文句柄,用作检测文字尺寸
CDC *pdc = GetDC();
CString strText(pMenuItem->szMenuText);
// 获取菜单文字尺寸
CSize size = pdc->GetTextExtent(pMenuItem->szMenuText, \
::lstrlen(pMenuItem->szMenuText) + 1);
// 设置菜单宽度为文字宽度
pMIS->itemWidth = size.cx;
// 菜单宽度加上图标宽度
pMIS->itemWidth += 16;
// 如果是弹出菜单,则需加上小箭头的宽度
if(pMenuItem->uID == -1)
pMIS->itemWidth += 15;
// 设置菜单文字高度
pMIS->itemHeight = ::GetSystemMetrics(SM_CYMENU);
// 释放工具栏上下文句柄
ReleaseDC(pdc);
}
}
昏,需要资源分10分~
点下载,发现是个文档,而用Toolbar制作菜单的问题我早解决了
我现在的问题是怎么画菜单哟.............点取消下载后,刷新一下,发现已经扣了10分了,心想,反正分已经扣了,就下载吧~
谁知道下载后又扣10分.......................................疯了!
int n = 0;
while(*lpc != '\t' && *lpc != '\0')
lpc ++;
if(*lpc == '\t')
{
*lpc = '\0';
n = lpc - txt;
} if(n > 0)
{
::DrawText(hDC,txt,-1,lprc,DT_LEFT|DT_VCENTER|DT_SINGLELINE);
*lpc = '\t';
while(*lpc == '\t')
lpc ++;
if(*lpc != '\0')
::DrawText(hDC,lpc,-1,lprc,DT_RIGHT|DT_VCENTER|DT_SINGLELINE);
}
else
::DrawText(hDC,txt,-1,lprc,DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_EXPANDTABS);
Test1 \t Ctrl+x
Test2 \t Ctrl+x
Test3 → 子菜单
Test4 \t Ctrl+x
Test5 \t Ctrl+x
上面的菜单中,Test1 和 Test2 的制表符可以展开到右边
但是 Test3 下面的那些就不行了!所以我在想,是不是在计算菜单尺寸的时候,计算失误呢~