MFC
sky_lixf
这个作者很懒,什么都没留下…
展开
-
MFC进度条重绘 (CProgressCtrl)
MFC进度条(CProgressCtrl) 重绘先看一张图:新建一个 继承自 CProgressCtrl 的类,然后添加 OnPaint 消息处理函数,此函数代码如下:void CNewProgress::OnPaint(){ CPaintDC dc(this); CBrush BackgroundBrush; BackgroundBrush.CreateSolidBrush(RGB(255,0,0)); CBrush ForeB转载 2020-09-23 20:41:17 · 744 阅读 · 0 评论 -
2020-09-22
问题描述 原先在项目中使用了Unicode字符集,后来由于某些原因想改为使用多字节字符集,但更改多字节字符集后发现界面上的按钮风格发生了变化。解决方法 如果该项目是利用MFC应用程序向导创建的,可以在向导自动生成的stdafx.h文件(vs2019 framework.h)中看到如下代码。#ifdef _UNICODE#if defined _M_IX86#pragma comment(linker,"/manifestdependency:\"type='win32' na.转载 2020-09-22 22:37:34 · 161 阅读 · 0 评论 -
MFC GDI+ 初始化类
首先创建一个基于对话框的MFC程序,然后把下面两个文件分别保存为.h文件和 .cpp文件//InitGdiplus.h#pragma once#include <GdiPlus.h>using namespace Gdiplus;class CInitGdiplus{public: CInitGdiplus(void); ~CInitGdiplus(void);private: ULONG_PTR m_GdiplusToken; GdiplusStartupInp原创 2020-09-09 20:41:53 · 254 阅读 · 0 评论 -
MFC 对话框背景图片
在windows开发当中做界面的主要技术之一就是使用MFC,通常我们看到的QQ,360,暴风影音这些漂亮的界面都可以用MFC来实现。今天我们来说一下如何用MFC美化对话框,默认情况下,对话框的背景如下:那么,我们如何将它的背景变成如下界面呢,而且还要保留对话框的移动功能,漂亮背景如下:为了实现美化对话框背景的效果,我们需要让我们的对话框响应WM_CTLCOLOR消息,每当我们的对话框或者它的子控件需要重绘时,我们的对话框都会收到这个消息,因此,我们需要为对话框添加WM_CTLCOLOR的转载 2020-09-09 20:37:25 · 682 阅读 · 0 评论 -
CButton的Owner Draw属性设为True,报错
按钮的Owner Draw属性设为Trueclass CEditButton : public CButton{public: DECLARE_MESSAGE_MAP() afx_msg void OnNcPaint(); afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); afx_msg void OnVScroll(UINT nSBCode, UINT nPos...原创 2020-07-24 16:01:04 · 590 阅读 · 0 评论 -
MFC 之 重绘按键Cbutton
上次我们学习了如何美化对话框的界面,这次我们为上次的对话框添加两个按钮,一个是关闭按钮,另一个是最小化按钮,好,现在我们先看一下效果:是不是很难看,因为我们的对话框美化了,所以我们的按钮也要美化,因为采用贴图的方式来美化,所以,我先给出这两个按钮的PNG格式的图片,该图片支持透明色,具体如下:关闭按钮效果图:最小化按钮效果图:这两张效果图是我自己从网上找的,可能不是很合适,但是用来教学,完全没有问题,它们的尺寸都是108*21,每张图片都有四个小图片,第一张和第四张小图片都是透明的,所以看不转载 2020-07-24 15:00:46 · 912 阅读 · 0 评论 -
MFC用CButton实现带滚动条的图片显示控件
我们知道MFC种的Picture控件基本上就是CStatic,而CStatic控件通过ShowScrollBar函数只可以使滚动条现实出来,但是不可以拖动,所以想只用CStatic控件实现大图片的现实并带有进度条是不容易实现的,然而我们又知道CButton控件的滚动条是可以拖动的,所以我们可以只通过CButton控件来实现我们这种想法,而不用另外添加CScrollBar控件。要想实现在CButton上实现带滚动条的图片显示控件,首先要重载CButton类,我用的重载类名字是CButtonPic...转载 2020-07-24 14:59:55 · 825 阅读 · 0 评论 -
MFC使用CButton的显示区域作为画布显示图像
1.在对话框中添加一个CButton控件,然后在类向导中新建一个继承自CButton的类class CDisplayArea : public CButton{//...}2.在该对话框的头文件中声明一个CDisplayArea类的对象,然后和新添加的CButton按钮绑定到一起class CNDTDisplayDlg : public CDialogEx{ CDisplayArea m_DispArea;}void CNDTDisplayDlg::DoDataExchang...转载 2020-07-24 14:58:43 · 257 阅读 · 0 评论 -
重绘编辑框CEdit(继承CEdit方式)
编辑框是常用控件之一,同时也是一种完全自实现较为繁琐的控件。本例实现了对编辑框的简单的自绘制,在保留其自身的强大功能的前提下,实现了编辑框的边框、背景、文字颜色以及禁用态的各种颜色的替换。要想重绘,我们必须知道要绘什么。通过观察默认的编辑框我们可以很清楚的看到编辑框有三个最基础的部分需要我们绘制,他们分别是3D边框、背景和文字,再进一步分析我们会发现他们是一个基本窗口的两个部分,即客户区和非客户区。这样一来我们就知道应该用什么函数有针对性的绘制什么区域了,由于提供了源码,这里仅就基本原理和...转载 2020-07-22 19:57:12 · 1558 阅读 · 1 评论 -
MFC 在picture控件中,嵌入一个对话框
一、对话框中显示对话框的方法:1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。设置这个对话框的属性:1)、“Style”选择“Child”;中文版“样式”选择“下层”。2)、“Border”为“None”;中文版“边框”选择“无”。2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。3、得到Pic控件客户区坐标//CDlgParent.cpp ——OnInitDialog(..转载 2020-07-01 23:04:16 · 684 阅读 · 0 评论