修改MFC窗口的标题

兴建一个单文档应用程序后,窗口显示的标题为:文档标题 主窗口标题。

修改文档标题的方式:

改变****Doc::OnNewDocument() 函数为:

BOOL CSDITitleDoc::OnNewDocument()
  {if (!CDocument::OnNewDocument())return FALSE;

       //红色的为添加的代码;

        SetTitle (" 软件版权保护系统 " );
  return TRUE;
  }
主窗口标题的修改:

修改MainFrame的成员函数PreCreateWindow()

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
 if( !CFrameWnd::PreCreateWindow(cs) )
  return FALSE;
 // TODO: Modify the Window class or styles here by modifying
 //  the CREATESTRUCT cs

//红色的为添加的代码;
 m_strTitle = " 软件水印 ";
 return CFrameWnd::PreCreateWindow(cs);

 return TRUE;
}

修改完成后的截图:

### MFC修改窗口标题栏字体颜色 在MFC框架内直接提供给开发者的API并不支持直接更改窗口标题栏的字体颜色。这是因为标准Windows窗口标题栏由操作系统管理,而非应用程序本身负责绘制。不过,通过自绘技术可以实现这一需求。 为了达到这个目的,通常采用以下几种式之一: #### 使用 `WM_NCPAINT` 消息处理非客户区绘画 当接收到此消息时,在子类化窗口过程后,可以在其中执行自定义画图操作来覆盖原有的标题栏样式[^1]。 ```cpp afx_msg void OnNcPaint(); BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_NCPAINT() END_MESSAGE_MAP() void CMainFrame::OnNcPaint() { default(); // 调用基类法完成默认绘制 CPaintDC dc(this); // 获取当前窗口矩形区域 RECT rect; GetWindowRect(&rect); ScreenToClient(&rect); // 设置文本颜色和背景模式 SetTextColor(dc.m_hDC, RGB(255,0,0)); // 设定红色作为示例 SetBkMode(dc.m_hDC, TRANSPARENT); // 绘制新的标题文字 CString strTitle; GetWindowText(strTitle); DrawText(dc.m_hDC, (LPCTSTR)strTitle, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); } ``` 需要注意的是上述代码片段仅作为一个简单示范,并未考虑所有细节情况下的兼容性和稳定性问题。实际应用中可能还需要进一步调整逻辑以适应不同版本的操作系统以及各种特殊情况。 另外一种更为复杂但也更灵活的式是创建一个完全自定义外观的顶级窗口,放弃使用系统的标题栏而自己构建顶部控件条模拟标题栏效果并自由控制其显示属性。这种式虽然灵活性最高但是工作量较大而且涉及到更多关于用户体验设计面的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值