绘图
爬行的菜鸟
学习才是正确的道路
展开
-
BMP图24位转换成1位单色
昨天在工作的时候又遇到了这个问题 所以在此记录一下 这是个纯c语言的 兼容性不错24位BMP转1位BMPFILE* SetRGBQUAD(FILE *wfile){ int i; RGBQUAD rgbquad[2]; for (i = 0; i<2; i++) { rgbquad[i].rgbBlue = i ? 0xFF : 0; rgbquad[i].rgbGreen = i ? 0xFF : 0; rgbquad[i].rgbRed = i ? 0xFF :...原创 2020-05-21 08:44:32 · 1600 阅读 · 0 评论 -
VS2010 取消界面记忆功能
MFC中新建了两个ToolBar之后,第一次运行程序时两个工具栏的位置正确,但是运行第二次时出现错误,最及时的办法就是删除注册表中的值,如上一篇日志所讲的那样,但是总是这样做太麻烦,而且生成程序之后不可能要求别人运行的时候先删除注册表中的值,烦恼了好久之后正好看到一篇日志,解决了所有问题,也就是“取消界面记忆功能”。 VS2010的界面记忆功能是为了方便用户定制界面,但是...转载 2018-12-07 11:08:57 · 665 阅读 · 1 评论 -
绘图 单文档应用实例
文档/视图结构开发实例 下面在单文档应用程序框架的基础上,逐步开发一个典型的文档/视图结构的绘图程序,通过程序的具体开发,说明有关视图对象和文档对象的具体开发过程和方法。 一、实例说明 本实例在单文档应用程序框架的基础上,进行开发,最终实现一个简单的屏幕绘图程序。首先从最基本的视图绘图处理开始,逐渐加入文档的处理、数据的序列化、实现滚动窗口等功能。 ...转载 2018-12-10 16:06:27 · 959 阅读 · 0 评论 -
使用VS2010的CMFCToolbar实现真彩色工具栏
从VC2008的SP1开始,新加入了很多MFC控件,其界面效果虽然比不上WPF,但与之前的控件相比,也已经是飞越了。无奈目前大家对它的研究还是比较少,虽然自带了一些示例程序,仍然不能满足开发的方方面面。貌似C++的高手更喜欢旧版的MFC控件,这也难怪,新版的控件效果,用旧版的也能实现,只是有些麻烦,也可能高手们都不用MFC吧。我是刚从.net转入C++的新兵,用惯了framework提供的简单控件...转载 2018-12-27 15:10:33 · 872 阅读 · 1 评论 -
一步步制作真彩工具条
例子程序最终效果图:一直在寻找制作一个 24bit 及以上真彩工具条的简单有效方法,在各种VC站点都找到了很多有关这方面的文章和介绍,但是都存在一个不足的地方,介绍的不够详细,对初学者来说有点难度。最近终于有所发现,因此在这里将自己在制作真彩工具条方面的小经验介绍给大家,以期抛砖引玉。在这里将介绍两个重点的内容,一个是制作真彩工具条的图形工具 Visual toolbar,另一个是在程...转载 2018-12-27 15:31:45 · 298 阅读 · 0 评论 -
VS2010中CMFCToolBar的用法
一、向导自动生成的CMFCToolBar由于应用了系统风格,向导生成的菜单确实很漂亮。如下图:但在某些情况下(至于哪些情况,笔者还不能确定),向导自动生成的菜单会没有名字,在“工具栏和停靠窗口”的子菜单下会显示空。如下图:出现这种情况的解决办法就是自己给工具栏命个名称。在CMainFrame::OnCreate()事件中给工具栏命名:int CMainFrame::OnC...转载 2018-12-27 16:46:18 · 1270 阅读 · 0 评论 -
转 MFC,调整窗口大小限制大小,设置窗口的最大|最小宽度与高度
方法一:响应窗口 WM_SIZE 消息(不推荐) WM_SIZE 消息是当窗口大小发生改变后发送的,所以如果要在这个窗口中限制窗口大小的话,你就需要重新计算窗口的大小信息,代码如下:void CMainFrame::OnSize(UINT nType, int cx, int cy){ CFrameWnd::OnSize(nType, cx, cy); // TODO: 在此处...转载 2019-01-04 16:27:12 · 2393 阅读 · 0 评论 -
windows程序设计中MM_TEXT模式下的逻辑坐标与设备坐标的转换
在windows程序设计中,MM_TEXT模式下逻辑坐标和设备坐标原点默认是(0 , 0) ,在客户区左上角。x轴从左到右增加,y轴从上到下增加。当使用SetViewportOrgEx() 和 SetWinodwOrgEX()函数修改设备坐标系和窗口(逻辑)坐标系时,我们该怎么简单的找到逻辑坐标系点(0 , 0 )在变换后的位置,一种简单的方法是移动逻辑坐标系原点去和设备坐标系原点重合(注意:不...转载 2019-01-11 09:00:37 · 868 阅读 · 0 评论 -
vc学习(二)为视图窗口添加滚动条
修改继承基类 1.首先要确定Document的大小,比如400×450.可以将其大小存储在Document类中,也可以直接去设置 2.在代码中把public:C××View:CView中的CView改为CScrollView,以及消息映射中的CView都改掉。如果你怕出错可以将C××View.cpp和C××View.h中的CView都用查找替换为CScrollView。 3...转载 2019-01-11 09:24:37 · 939 阅读 · 0 评论 -
VC/MFC 固定窗口大小、居中显示
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CMDIFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT ...转载 2019-01-11 14:25:48 · 3571 阅读 · 0 评论 -
CFormView动态调整对话框的尺寸并成比例调整部署控件
基于单文档的CFormView动态调整对话框的尺寸并成比例调整部署控件如果你正在开发基于单文档程序,使用了CFormView基类实现多个窗口的显示,那么这个文档可能会给你提供些许帮助。一、实现对话框填充客户区当我们添加了资源对话框时,它的尺寸在客户区显示时是不会随着窗口的大小调整的,当框架尺寸小于它的尺寸时,还出现了滚动条,操作麻烦同时视觉效果也不良好。思路根据客户区的大小调整...转载 2019-01-02 13:27:41 · 931 阅读 · 0 评论 -
逻辑坐标与设备坐标——全窗口坐标、屏幕坐标、客户区坐标的总结
Windows应用程序绘制图形时使用的是一种逻辑单位,每个逻辑单位的大小由映射模式决定,这个逻辑单位既可以与设备单位(屏幕或打印机上的一个像素点)相同,也可以是一种物理单位(如毫米),还可以是用户自定义的一种单位。在Windows应用程序中,只要与输出有关系,都要使用映射模式。 首先谈谈映射模式基本知识,当Windows应用程序在其客户区绘制图形时,必须给出在客户区的位置,其位置用x和y ...转载 2019-01-02 16:20:23 · 1231 阅读 · 0 评论 -
[MFC] 控件大小跟随对话框大小比例变化
网上查阅有多种方法,选学一种笔记如步骤下。1 搭建完成控件随对话框变化比例变化的框架1.1 在对话框类中的消息映射宏中添加对话框尺寸改变时的消息宏BEGIN_MESSAGE_MAP( theClass, baseClass ) ON_WM_SIZE() END_MESSAGE_MAP() ON_VM_SIZE消息,此消息(VC定义的宏)表示只要窗口大小发生变化时...转载 2019-01-03 14:26:05 · 1194 阅读 · 0 评论 -
使用VC++操作Excel文件
本文档适用于:·Microsoft Foundation Classes (MFC), Microsoft Visual C++, 32-bit Editions, version 6.0 以上·Microsoft OLE 库 第一步:建立一个自动化工程3. 启动VC 6.0,打开新建对话框,新建一个MFC AppWizard(exe)工程,这里工程...转载 2018-12-13 14:04:22 · 3548 阅读 · 0 评论 -
测试CDockablePane。 测试他的最基本的功能。
最近看到一句话:×××××××××××××××××××××××××××××××××××××××××××CDockablePane是一个通用窗口容器,它主要有两个用途:在一个框架中悬浮或者停靠窗口。在复杂布局的应用程序中,它可以显示或隐藏所装载的窗口,为应用程序窗口提供额外的空间。×××××××××××××××××××××××××××××××××××××××××××上面说的事呢 感...转载 2018-12-12 15:30:22 · 502 阅读 · 0 评论 -
在文档视图中嵌入对话框
这个问题曾经纠结了很久,现提供一个简单可行的方法……1.首先新建一个你想嵌入的对话框,然后设置属性Child,无边缘2.然后给这个对话框关联一个类,比如CViewDlg,使用默认继承于CDialog3.在想添加的试图类里面新增一个该对话框类的变量,不妨命名为m_dlg4.在View.cpp添加你的对话框类的头文件5.在View的OnCreate()函数里面添加代码……(当然需要...转载 2018-11-27 17:06:12 · 766 阅读 · 0 评论 -
MFC单文档应用程序显示图像
1 利用VS2010向导创建一个MFC单文档应用程序MFCTest2 在MFCTestView.h中引用<atlimage.h>,并创建一个CImage对象#include <atlimage.h> private: CImage image;3 打开资源文件,选中Menu下面的IDR_MAINFRAME,添加一个新的菜单项“打开图像”,修改其ID为I...转载 2018-11-15 17:08:46 · 953 阅读 · 0 评论 -
创建MFC绘图步骤
微软基类库MFC(microsoft foundation class library,MFC)是以C++形式封装的Windows API(Application Program Interface),包含了200多个已经定义好的常用基类。在程序设计过程中,一般是通过MFC调用基类的成员函数来完成设计任务的下面我们介绍建立一个test程序的步骤。 1. 启动VC++6.0, 从File菜单...转载 2018-11-14 10:00:31 · 785 阅读 · 0 评论 -
MFC绘图小实验(1)
1,使用用户自定义的映射模式,设置窗口大小和视区相等的二维坐标系。视区中x轴水平向右为正,y轴垂直向上为正,原点位于屏幕客户区中心。void CTestoneView::OnDraw(CDC* pDC){ CTestoneDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for...转载 2018-11-14 10:56:34 · 2088 阅读 · 0 评论 -
MFC之绘图篇:初步绘图(开发平台VS2010)
步骤一: 在已有的外貌框架中为我们的菜单项鼠标右键添加消息处理程序,用来处理当我们对该菜单项进行点击时能够传递某些东西。如下图所示:在这时我们就会看到一个弹出的向导对话框,记住添加的事件处理程序在DrawView类中,这时我们就会发现改ID的好处了,我们就能对这些事件处理程序进行很好的区分,而不是一堆数字。如下图所示: 用同样的方法添加想要处理的程序在这里我就只添加了...转载 2018-11-14 11:33:28 · 20338 阅读 · 5 评论 -
MFC中基于对话框利用CRectTracker实现多矩形绘制、选择、拉伸、移动和删除
橡皮筋类(CRectTracker) 要想实现图形的拉伸功能,可以借用vs函数库中封装的橡皮筋类(CRectTracker),达到事半功倍的效果。 首先,简要介绍哈CRectTracker这个类: Windows自带的画图软件中可以用虚线框选择图像的某个区域,之后便可以拖动、放大、缩小该区域,这是通过橡皮筋类(CRectTracker)来实现的,它将实现...转载 2018-11-16 08:48:47 · 3599 阅读 · 1 评论 -
Windows的字体LOGFONT
LOGFONT是Windows内部字体的逻辑结构,主要用于设置字体格式,其定义如下:typedef struct tagLOGFONTA{ LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfW...转载 2018-11-21 08:37:24 · 8343 阅读 · 0 评论 -
橡皮筋类(CRectTracker)
Windows自带的画图软件中可以用虚线框选择图像的某个区域,之后便可以拖动、放大、缩小该区域,这是通过橡皮筋类(CRectTracker)来实现的,它将实现用线框选中一个区域,并可以拖动、放大、缩小该区域。简介:CRectTracker类允许一个项被显示,移动,以不同的方式改变大小。虽然CRectTracker类是设计来支持用户以图形化界面与OLE项交互的,但是它的使用不仅限于支持OLE...转载 2018-11-19 08:46:40 · 1787 阅读 · 0 评论 -
CRectTracker(橡皮筋)类的使用
CRectTracker(俗称“橡皮筋”类)是一个非常有意思的类。你在Windows中,在桌面上用鼠标拖拽,便可以看到一个虚线的矩形框,它便是橡皮筋.它可以用做显示边界,你也可以扽它的八个角用来放大缩小,做框选使用。如何通过编程来实现这种功能呢?这就是CRectTracker类的作用;一、CrectTracker 类成员:一 数据成员1. m_rect当前橡皮筋矩形的矩形框的位置2....转载 2018-11-19 09:52:04 · 716 阅读 · 0 评论 -
MFC中picture控件显示图片
1.打开BMP图片CBitmap* m_pBitmap = new CBitmap;m_pBitmap->LoadBitmap(IDB_BITMAP1); 2.第一种方式,用CDC显示CDC *pDC = GetDlgItem(IDC_AAAA)->GetDC(); //IDC_XXXX是你的图片控件 CDC dcMem;dcMem.CreateCompatib...转载 2018-11-19 11:30:36 · 1801 阅读 · 0 评论 -
在可停靠窗格中使用对话框来实现可视化设计
摘要:本文将介绍如何在可停靠窗口(Dockable Pane)中使用对话框来来实现可视化设计,即将一个对话框(Dialog)作为子窗口填充在可停靠窗格之中,这样做的好处是使得可以通过Visual Studio的对话框资源编辑功能可视化地设计窗口,并轻松地实现控件的消息处理程序。关键字:Dockable Pane, Dialog, 可视化设计 一、使用可停靠窗格开发用户界面很多程序中...转载 2018-11-29 15:21:54 · 489 阅读 · 0 评论 -
如何去掉CDockablePane的Close按钮
方法一:在继承CDockablePane的类中重写CanBeClosed()方法: virtual BOOL CanBeClosed() const; ...BOOL COutputWnd::CanBeClosed() const {return FALSE;} 方法二:if (!m_wndView.Create(strFileView, this,...转载 2018-11-29 17:11:45 · 997 阅读 · 0 评论 -
vc++ excel 写入 与写出数据
1、添加头文件#include "stdafx.h"#include "testExcel.h"#include "testExcelDlg.h"#include "afxdialogex.h"#include "CApplication.h"#include "CRanges.h"#include "CWorkbook.h"#inclu转载 2018-11-27 14:12:55 · 617 阅读 · 0 评论 -
MFC 列表视图控件List Control 使用一
列表视图控件的创建MFC同样为列表视图控件的操作提供了CListCtrl类。如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,原型如下:virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* ...转载 2018-11-27 15:20:56 · 835 阅读 · 0 评论 -
MFC中的GDI绘图
一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。 在Windows操作系统中,动态链接库C:\WINDOWS\system32\gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输出像素、在打印机上输...转载 2018-11-15 13:22:27 · 2044 阅读 · 1 评论