1、在窗口创建前修改窗体外观 在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中修改,其中CREATESTRUCT结构中有诸如窗口大小和标题等的修改,这里注意的是如果要修改标题的话,需要修改CREATESTRUCT style &= ~FWS_ADDTOTITLE,不让默认的文档标题添加到窗口标题上。
   在窗口创建后修改窗体外观 就在OnCreate函数里修改,SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE) & ~WS_MAXIMIZEBOX );其中GetWindowLong是获得已有的样式,SetWindowLong是设置现在的样式。
2、在窗口创建前修改光标、背景等 方法1,在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中重新注册一个窗口类(注:若要修改背景的话,则要在视类的PreCreateWindow中修改,方法是使CREATESTRUCT的lpszClass = 新注册的窗口类的名字)方法2、调用AfxRegisterWndClass函数修改窗口的类型、光标、背景等
   在窗口创建后修改光标、背景等 方法1、就在OnCreate函数里调用SetClassLong(m_hWnd, GCL_HICON, (LONG)m_hIcon[index]);函数
3、获得应用程序当前实例句柄 方法1、调用AfxGetInstanceHandle()方法2 AfxGetApp()(获得当前应用程序对象)->m_hInstance
4、m_wndToolBar.EnableDockingCBRS_ALIGN_ANY) 让工具栏对象可以停靠,EnableDocking(CBRS_ALIGN_ANY)让主框架窗口可以停靠
5、ShowControlBar(&m_newToolBar, !m_newToolBar.IsVisible(), false)用来控制显示或隐藏控制条,如工具栏等
6、如果要在程序中设置某个菜单项的状态,如是否显示复选标记、该菜单项是否有效等,利用UPDATE_COMMAND_UI消息,显示复选标记(pCmdUI->SetCheck),菜单项是否有效(pCmdUI->SetCheck->Enable())
7、自己添加消息三步走 1、在头文件中定义 #define UM_PROGRESS   WM_USER + 1设置消息号,只要大于WM_USER就可以了 2、添加afx_msg LRESULT OnProgress(WPARAM wParam, LPARAM lParam)函数 3、在BEGIN_MESSAGE_MAP下添加ON_MESSAGE(UM_PROGRESS, OnProgress) 最后实现OnProgress这个函数
8、SendMessage 直接把消息发送给响应函数并且等到响应函数执行好以后才返回到下一条语句执行
   PostMessage 将消息发送到消息队列中,然后立即返回,就执行下一条语句。不管消息有没有送达

mfc修改应用程序外观的更多相关文章

  1. 凹凸曼的修改zencart 程序(经典!)

    ==================================================================================================== ...

  2. 神器如 dnSpy,无需源码也能修改 .NET 程序

    dnSpy 是 0xd4d 开发的 .NET 程序调试神器. 说它是神器真的毫不为过!它能在完全没有源码的情况下即时调试程序,甚至还能修改程序!本文讲向大家介绍如何使用 dnSpy 修改 .NET 程 ...

  3. MFC修改系统托盘的图标

    最近开始学习MFC,发现程序在任务栏,窗口和exe都使用的默认图标,那么,我们想使用自己的图标该如何做? 第一种方法: 1.我们将自己要使用的icon的图标导入项目中. 资源视图-->xx.rc ...

  4. 怎样在 Ubuntu 中修改默认程序

    导读 作为一个新手,你需要知道如何在 Ubuntu 中修改任何默认程序,这也是我今天在这篇指南中所要讲的. 对于我来说,安装 VLC 多媒体播放器是安装完 Ubuntu 16.04 该做的事中最先做的 ...

  5. 如何在Ubuntu Unity上修改应用程序图标

    转自如何在Ubuntu Unity上修改应用程序图标 这篇文章将教大家在Ubuntu Unity上修改应用程序图标,这个教程适合于Ubuntu 14.04, Ubuntu 13.10, Ubuntu ...

  6. 怎样在Ubuntu中修改默认程序

    这个新手指南会向你展示如何在 Ubuntu Linux 中修改默认程序.对于我来说,安装 VLC 多媒体播放器是安装完 Ubuntu 16.04 该做的事中最先做的几件事之一.为了能够使我双击一个视频 ...

  7. 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

    如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...

  8. MFC定时关机程序的实现1

    写个定时关机程序自用,界面简单实用,最终界面如下 第一步,新建一个MFC对话框应用程序,拖几个控件过来, 界面如下: 然后给下拉列表框,复选按钮绑定变量,以方便进行操作. CComboBox m_co ...

  9. 2019-11-29-Roslyn-通过-NuGet-库修改应用程序入口函数

    title author date CreateTime categories Roslyn 通过 NuGet 库修改应用程序入口函数 lindexi 2019-11-29 08:37:49 +080 ...

随机推荐

  1. 在树莓派上设置无线静态IP

    修改文件: /etc/network/interfaces,命令如下 sudo nano /etc/network/interfaces 将最后一句iface default inet dhcp,替换 ...

  2. Qt 获取字符串的UTF8编码值

    看到群里有人在问怎么获取字符串的UTF8编码值 自己测试了下 熟悉下函数 <span style="font-size:18px;">    ui->setupU ...

  3. python 正则表达式汇总

    一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥 ...

  4. JavaScript 中的日期和时间

    前言 本篇的介绍涵盖以下部分: 1. 时间标准指的是什么?UCT和GMT 的概念.关联和区别? 2. 时间表示标准有哪些? 3. JS 中时间的处理 日期时间标准 日期的标准就不多说了 -- 公元纪年 ...

  5. leetcode第一刷_Binary Tree Inorder Traversal

    递归实现当然太简单,也用不着为了ac走这样的捷径吧..非递归实现还挺有意思的. 树的非递归遍历一定要借助栈,相当于把原来编译器做的事情显式的写出来.对于中序遍历,先要訪问最左下的节点,一定是进入循环后 ...

  6. linux路由表配置

    一.原理说明 1.路由表(table)从0到255进行编号,每个编号可以对应一个别名,编号和别名的对应关系在linux下放在/etc/iproute2/rt_tables这个文件里,一般0编号的tab ...

  7. vc根据域名获取IP地址 gethostbyname()函数

    以下是VC Socket初始化时用到的两个函数 一.WSAStartup函数                int WSAStartup                       (         ...

  8. VC2008如何生成及使用DLL(图文并茂,完整版)

    博客分类: Dot net VC2008 DLL Dot net   生成.使用DLL看起来简单,但做起来才发现还是有一些地方需要注意的. 1. 打开VS2008,新建一个VC工程,选择Win32类型 ...

  9. 基于visual Studio2013解决算法导论之009快速排序随机版本

     题目 快速排序随机版本 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> ...

  10. js获取网页屏幕可见区域高度

    document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.docume ...