
MFC
蓝天白水
这个作者很懒,什么都没留下…
展开
-
如何用MFC创建最简窗口
1.程序向导(去掉无用功能)向导完成后生成的类如下所示调试一下程序,你会发现,还有很多多余功能这些菜单都是没用的,我们的程序不会用到2.删掉CAboutDlg和CChildView两个类,我们直接利用主框架类创建创建程序窗口3.在CMainFrame类中删除CMainFrame诊断代码,状态栏相关代码,焦点设置代码,这些都用不到,精简程序框架类只剩下这三个函数(注意删除OnCreate()的状态栏...原创 2018-05-19 13:13:25 · 7084 阅读 · 0 评论 -
利用MFC制作的图片局部放大工具
1.由程序向导创建一个单文档程序2.添加GDI+支持(见前文)3.在视图类中添加如下成员protected:bool recover;int d;int s;int oldy;int oldx;Bitmap* m_iBk1;//放大图Bitmap* m_iBk2;//原始图RectF rc;//绘图区域4.添加WM_MOUSEMOVE消息映射添加WM_SIZ...原创 2018-09-04 10:57:59 · 1324 阅读 · 0 评论 -
MFC如何添加系统菜单(菜单添加小图标)
先来介绍一下要用到的函数(win32版)函数原型:HMENU GetSystemMenu(HWND hWnd,BOOL bRevert); 参数: hWvd:拥有窗口菜单拷贝的窗口的句柄。 BPevert:指定将执行的操作。如果此参数为FALSE,GetSystemMenu返回当前使用窗口菜单的拷贝的句柄。该拷贝初始时与窗口菜单相同,但可以被修改。 如果此参数为TRUE,GetSy...原创 2018-06-19 15:28:38 · 9873 阅读 · 1 评论 -
MFC和Gdi+实现图片雾化
1.创建一个基于对话框的程序2.添加对Gdi+的支持3.在对话框类中添加公有成员Gdiplus::Bitmap *m_IamgeShow;Gdiplus::RectF m_rect;void ImageAtomization(Gdiplus::Bitmap *pImage);CString m_FileName;在Initstance()函数中初始化m_ImageShow=NULL;m_F...原创 2018-06-19 11:03:52 · 507 阅读 · 0 评论 -
MFC如何在基于对话框的程序中添加状态栏
1.创建一个基于对话框的程序2.在对话框类中添加公有成员CStatusBar m_wndStatus;3.在资源视图中添加string Table资源例如:我们添加下面三个接下来我们在cpp文件开始部分添加下面数组static UINT indicators[]={ID_TEST1,ID_TEST2,ID_TEST3,};在Initstance函数中添加如下代码if(!m_wndStatu...原创 2018-06-18 13:40:06 · 3479 阅读 · 3 评论 -
MFC如何创建不规则窗口(椭圆为例)
首先介绍用到的两个主要函数1.绘制椭圆的函数CreateEllipticRgn和设置任意不规则窗口边界函数SetWindowRgn我们直接上源码2.创建一个基于对话框的程序在对话框类的初始化函数中添加如下代码 CRgn wndRgn; wndRgn.CreateEllipticRgn(0,0,480,300); SetWindowRgn((HRGN)wndRgn,true);效果...原创 2018-06-17 22:24:43 · 1203 阅读 · 1 评论 -
MFC创建一个隐藏窗体的程序
先来介绍一个用到的核心函数CWnd::FindWindow()函数这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题,两个只要知道一个,就能返回该窗口的CWnd指针不知道窗口类怎么办,在VS中自带了一个工具spy++(在工具里面)从上面找到对应地窗口,例如,qq浏览器,我们右键,选属性,然后点类类名就找到了,接着我们在对话框中添加一个按钮,代码如下void CHideDlg::O...原创 2018-06-17 22:05:30 · 1034 阅读 · 0 评论 -
MFC实现程序启动动画
我们发现很多大型程序在打开时都有一个启动界面,等过一段时间才会进入主界面,这是怎么实现的呢,我这篇文章就来简单讲一讲说到底就是用了多线程技术,不过这里,我们有专有名词,工作者线程和用户界面线程,如其名,大家应该很容易理解意思,启动动画就要用到界面线程接下来具体讲讲如何实现1.创建一个基于对话框的程序2.在资源里再添加一个对话框,这个对话框就是我们主界面显示之前的启动动画窗口,在里面添加一个pict...原创 2018-06-17 16:28:46 · 3401 阅读 · 1 评论 -
Win32如何创建基于对话框的程序
1、创建一个Windows应用程序,不要点下面的空项目2.找到Initstance()函数如下BOOL InitInstance(HINSTANCE hInstance, int nCmdShow){ hInst = hInstance; // 将实例句柄存储在全局变量中 HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OV...原创 2018-06-17 09:48:20 · 4530 阅读 · 0 评论 -
MFC基于Window Media Player的多媒体播放器
1.建立一个基于对话框的程序,命名为Video。2.添加activeX控件Window Media Player,ID为IDC_OCX1,添加一个Edit控件,命名IDC_EDIT_FILENAME;右键单击点选择项选COM组件,在列表中找到Window Media Player勾选,添加到工具箱工具箱中多了一个Window media Player3.为该控件添加实现类;4.在VideoDlg....原创 2018-06-16 19:13:32 · 5987 阅读 · 2 评论 -
MFC制作的一个简单的跑酷游戏(gdi+)(使用智能指针)
该程序的图片资源是借用网上一位大神的1.建立一个基于对话框的程序,命名为parkour2.添加类CCharacter和CScene#include "stdafx.h"#include "Character.h"CCharacter::CCharacter(){ CString path; for (int i = 1; i <= MAXFRAME; i++) { ...原创 2018-06-22 16:24:56 · 868 阅读 · 0 评论 -
MFC如何使对话框无边框也能拖动
重载WM_NCHITEST消息LRESULT CparkourDlg::OnNcHitTest(CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 return HTCAPTION;}原创 2018-06-22 14:27:19 · 1009 阅读 · 0 评论 -
一个功能简单的贪吃蛇游戏
1.创建一个基于对话框的程序2.添加如下所示的编辑框,文本框并设置这几个按钮位置属性如下3.准备一张背景图,放入res文件夹内,这样,准备工作就做好了,现在来添加代码了4.添加Gdi+支持(见前文)5.在主对话框类中添加两个结构struct Snake{ int x;//位置 int y; int direction;//方向 };struct Food{ int x; in...原创 2018-05-22 15:38:15 · 547 阅读 · 0 评论 -
MFC骑白马的小公举动画效果
直接上源码// ChildView.h : CChildView 类的接口//#pragma once// CChildView 窗口class CChildView : public CWnd{// 构造public: CChildView(); void TransparentPNG(CImage *png); void Draw();// 特性publ...原创 2018-05-25 08:50:10 · 440 阅读 · 0 评论 -
MFC自绘按钮
1.建立一个基于对话框的程序2.在这里,我是将确定按钮重绘,拉大确定按钮修改为自绘3.添加位图文件ID为IIDB_BITMAP14.添加类CMYButton基类为CButton后面两个函数是我自己添加的,其中DrawItem函数在基类中为虚函数,我们在派生类中重载,负责按钮的绘制void CMYButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)...原创 2018-05-20 16:37:20 · 2515 阅读 · 1 评论 -
MFC实现开机自启
1.创建一个基于对话框的 程序2.在对话框中添加一个按钮将ID设为ID_POWERBOOT,为按钮添加变量名PowerBootButton为该按钮添加事件处理函数void CPowerBootDlg::OnBnClickedPowerboot(){ // TODO: 在此添加控件通知处理程序代码 }3.在CPowerBootDlg类的InitInstance()函数中获取开机自启状态BOO...原创 2018-05-19 17:44:21 · 2842 阅读 · 0 评论 -
用MFC和Gdi+实现桌面雪花特效
1.最简窗口的建立2.添加Gdi+支持这两个我的博客前文都有自己找3.在CMainFrame类中添加私有成员Image *img1,*img2;//两种雪花 RectF rc{ 0,0,1920,1080 };//窗口大小:我的电脑分辨率是1920x1080所以最后两个数设为1920和1080 int x1 = 0, x2 = 50, y1 = 0, y2 = 50;//两种雪花的位置并在构造...原创 2018-05-19 16:42:04 · 746 阅读 · 0 评论 -
MFC双缓冲技术(Gdi+)
1.创建一个一个最简窗口(见前文)2.在stdafx.h中添加对Gdi+的支持#include<gdiplus.h>#pragma comment(lib,"Gdiplus.lib")using namespace Gdiplus;在App类中添加三个私有成员ULONG_PTR m_tokenGdiplus;Gdiplus::GdiplusStartupInp...原创 2018-05-19 15:11:21 · 2012 阅读 · 0 评论