zoukankan      html  css  js  c++  java
  • 修改MFC主窗口界面标题和图标的方法

    在VS2010下新建一个MFC的多文档应用程序,程序默认的标题是“文档名-工程名”。图标默认的是写着MFC的三个方块。但在很多软件中都不是使用的默认设置,开发者们都将标题和图标改过,以符合项目要求,而且直观好看。

    一.修改标题

    标题分为前后两部分,前面一部分默认是文档名,后面一部分默认是工程名,比如我新建一个叫做UITEST的工程,那标题就是“UITEST1-UITEST”。后面都用这个工程为例。

    1.修改前半部分:

    可以重载文档类的虚函数SetTile,如下

    void CTestDoc::SetTitle(LPCTSTR lpszTitle)

    {

       CDocument::SetTitle(L"你的标题");

    }

    也可以在UITESTDoc.app中,在BOOL CUITESTDoc::OnNewDocument()函数中添加SetTitle(L"你的标题")

    2.修改后半部分:

    改资源字符串

    在资源视图的String Table中找到IDR_MAINFRAME,将其标题改为你想要的标题

    3.去掉-:

    去掉标题中间的-,只显示后面的标题,

    方法1:通过重载CFramWnd类的OnUpdateFrameTitle函数

    virtual void OnUpdateFrameTitle(BOOL NaDa);

    void CMainFrame.:OnUpdateFrameTitle(BOOL NaDa)

    {

    CString csAppName;

    csAppName.Format(AFX_IDS_APP_TITLE);

    SetWindowText(csAppName);

    }

    此时显示的结果只有字符串资源AFX_IDS_APP_TITLE所定义的字符串,当然也可以把SetWindowText(csAppName)中的csAppName换成你想要的标题字符串。

    方法2:在CMainFrame的PreCreateWindow函数中修改窗口风格

    BOOL CMainFrame.:PreCreateWindow(CREATESTRUCT& cs)

    {

              cs.style. &= ~(LONG) FWS_ADDTOTITLE;

              return CFrameWnd::PreCreateWindow(cs);

    }

    使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个\n之前的部分

    二.修改图标

    替换默认的MFC图标,先要自己画一个符合格式要求的位图或从外部导入一个图标,修改其属性名,假设为IDI_IDI1。在MainFrm的OnCreate()里添加如下代码:

    HICON m_hIcon;

    m_hIcon = AfxGetApp()->LoadIcon(IDI_IDI1);

    SetIcon(m_hIcon, TRUE); // Set big icon

    SetIcon(m_hIcon, FALSE); // Set small icon

    其中big icon是32×32,small icon是16×16

  • 相关阅读:
    2017中国大学生程序设计竞赛
    2017中国大学生程序设计竞赛
    2017中国大学生程序设计竞赛
    2017中国大学生程序设计竞赛
    计算几何之凸包模板
    计算几何之凸包模板
    Kafka知识点汇总
    python 爬虫1 開始,先拿新浪微博開始
    iOS 7的手势滑动返回
    Ctrl+Enter 选中文本提交
  • 原文地址:https://www.cnblogs.com/Romi/p/2351799.html
Copyright © 2011-2022 走看看