社区
界面
帖子详情
有什麼方法可改變標題欄的高度,編程方法,不改系統設置
fox1999
2007-07-18 09:20:37
有什麼方法可改變標題欄的高度,編程方法,不改系統設置
比如菜單,有個 WM_MEASUREITEM 消息,在裡面可以改變它的高度。
但標題欄沒有呢?我記得以前我在哪裡見過。
因為我想自畫標題欄。又不想因為系統關係,它的高度不統一。
...全文
169
2
打赏
收藏
有什麼方法可改變標題欄的高度,編程方法,不改系統設置
有什麼方法可改變標題欄的高度,編程方法,不改系統設置 比如菜單,有個 WM_MEASUREITEM 消息,在裡面可以改變它的高度。 但標題欄沒有呢?我記得以前我在哪裡見過。 因為我想自畫標題欄。又不想因為系統關係,它的高度不統一。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fox1999
2007-07-20
打赏
举报
回复
多謝樓上的了
sparkkendy
2007-07-18
打赏
举报
回复
建立自己的自绘窗口!
WM_NCCALCSIZE
把非客户区加大
方法一:
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof( NONCLIENTMETRICS );
::SystemParametersInfo( SPI_GETNONCLIENTMETRICS,
sizeof( NONCLIENTMETRICS ),
&ncm,
0
);
ncm.lfCaptionFont.lfHeight = -300;
::SystemParametersInfo( SPI_SETNONCLIENTMETRICS,
sizeof( NONCLIENTMETRICS ),
&ncm,
SPIF_SENDCHANGE
);
方法二:
case WM_NCCALCSIZE:
{
BOOL bSpecial=FALSE;
int nEdgeWidth =3;
int nBarHeight =CAPTIONHEIGHT+3;
int nBottomEdge =3;
if(!(BOOL)wParam)
{
RECT rtSave;
CopyRect(&rtSave,(LPRECT)lParam);
// ::CallWindowProcA(lpwndinfo->pWndProc,hWnd,uMsg,wParam,lParam);
if(lpwndinfo->bIM ==TRUE)
{
int imbarheight =17;
rtSave.left+=nEdgeWidth;
rtSave.top+=imbarheight+3;
rtSave.right-=nEdgeWidth;
rtSave.bottom-=nBottomEdge;
}
else
{
rtSave.left+=nEdgeWidth;
rtSave.top+=nBarHeight;
rtSave.right-=nEdgeWidth;
rtSave.bottom-=nBottomEdge;
}
CopyRect((LPRECT)lParam,&rtSave);
*lResult=0;
::ReleaseDC(hWnd,hDC);
return TRUE;
}
else
{
RECT rtSave;
LPRECT prtClt;
LPNCCALCSIZE_PARAMS pNC;
pNC=(LPNCCALCSIZE_PARAMS)lParam;
prtClt=&(pNC->rgrc[0]);
CopyRect(&rtSave,prtClt);
CopyRect( &(pNC->rgrc[2]), &(pNC->rgrc[1]));
if(bSysDlg)
{
(pNC->rgrc[2]).left +=nEdgeWidth;
(pNC->rgrc[2]).right -=nEdgeWidth;
}
else
{
if(lpwndinfo->bIM ==TRUE)
{
int imbarheight =17;
(pNC->rgrc[2]).left +=nEdgeWidth;
(pNC->rgrc[2]).top +=imbarheight+3;
(pNC->rgrc[2]).right -=nEdgeWidth;
(pNC->rgrc[2]).bottom -=nBottomEdge;
rtSave.left+=nEdgeWidth;
rtSave.top+=imbarheight+3;
rtSave.right-=nEdgeWidth;
rtSave.bottom-=nBottomEdge;
}
else
{
(pNC->rgrc[2]).left+=nEdgeWidth;
(pNC->rgrc[2]).top+=nBarHeight;
(pNC->rgrc[2]).right-=nEdgeWidth;
(pNC->rgrc[2]).bottom-=nBottomEdge;
// Result=::CallWindowProcA(lpwndinfo->pWndProc,hWnd,uMsg,wParam,lParam);
//prtClt=&(pNC->rgrc[0]);
rtSave.left+=nEdgeWidth;
rtSave.top+=nBarHeight;
rtSave.right-=nEdgeWidth;
rtSave.bottom-=nBottomEdge;
}
}
CopyRect(prtClt,&rtSave);
*lResult=0;
::ReleaseDC(hWnd,hDC);
return TRUE;
}
break;
}
Qt 之 自定义窗口标题栏
首先自定义标题栏解决了我们程序在不同平台乃至同一平台不同的版本中样式不同的问题,使用自定义标题栏,能够保证外观的一致性,这也是为什么像QQ、有道词典、360等软件都没有使用系统标题栏,都是自定义标题栏了。...
【转】修改MFC标题栏上的图标和修改MFC窗口标题
转自:http://hi.baidu.com/vtk%B4%F3%BA%A3/blog/item/f2563f388422bffa3a87ced7.html MFC程序的默认的标题是“无... MFC程序的文档类中定义了一个虚函数SetTitle,用于设置窗口标题的前半部分,如果只是要修改“无
Labview自制标题栏,窗格移动
Labview自制标题栏,实现手动移动前面板,目前最简单的方式分享!
MFC一一框架类当中的一些操作(改变标题,设置菜单栏,工具栏)
下面介绍MFC单文档编程中,改变相应的视图所涉及到的一些框架类的操作。 (1).修改应用程序标题,一般在框架类的PreCreateWindow函数中实现 PreCreateWindow一般在窗口创建之前执行的,它的主要任务是对所要创建的窗口...
【微信小程序】自定义navigationBar标题栏
小程序默认使用的navigationBar只能设置颜色、文字,左侧返回按钮也是不可改变的,若要实现下方效果有解决方案,但是也有一定的问题。 1、更改app.json "window": { &...
界面
15,978
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章