MFC-自绘
luckyone906
这个作者很懒,什么都没留下…
展开
-
MFC关于JPG图片显示处理的几个方式
做远程视频监控项目,接触较多图片处理方面问题,作为学习做以下记录:一、截图默认bmp格式转jpg压缩。采用jpglib库去实现。二、jpg图片接收后MFC显示(四种方式)MFC提供的CWnd只有默认加载BMP文件的接口,对JPG等图像是不支持的,而实际中经常需要用到非BMP的图片,在VC中加载.JPG格式的图片,有四种方法。第一种:用流对象加载。IPicture*m_pi...原创 2020-02-19 19:07:23 · 1888 阅读 · 0 评论 -
MFC显示JPG,bmp图片
主要代码如下://************************************// 方法说明: 显示JPG和GIF、BMP图片// 参数说明: CDC * pDC 设备环境对象// 参数说明: CString strPath 要显示的图片路径// 参数说明: int x 要显示的X位置...原创 2020-02-19 19:03:45 · 336 阅读 · 0 评论 -
MFC改变对话框背景图片实例
// TODO: 在此添加消息处理程序代码和/或调用默认值 CPaintDC dc(this); // device context for painting CRect rect; GetClientRect(&rect); //获取对话框长宽 CDC dcBmp; //定义并创建一个内存设备环境 ...转载 2019-07-21 15:41:05 · 505 阅读 · 0 评论 -
浅谈MFC中BitBlt与StretchDIBits的区别
一、基础知识1.BitBltBitBlt 用于从原设备中复制位图到目标设备,语法格式如下:BOOL BitBlt(HDC hdcDest, // handle to destination DCint nXDest, // 目标矩形区域的左上角x轴坐标点。int nYDest, // 目标矩形区域的左上角y轴坐标点。int nWidth, // 在目标设备中绘制位图的宽度...转载 2019-07-21 18:18:01 · 635 阅读 · 0 评论 -
关于HBITMAP,CBITMAP,BITMAP的转换以及图像显示的一点归纳
OK,在上一篇文章中我提到了VC6和VS的差别,在VC6中我们只能依赖于CBITMAP HBITMAP以及BITMAP之间的转化关系,而在VS中,我们用CIMAGE类就可以全部搞定,那么究竟这三个类之间的转化关系是什么样的呢?图像显示的时候该怎么使用呢,别着急,听我慢慢道来。一、区分概念:首先:BITMAP是C++中定义的位图结构体HBITMAP是Windows中使用的位图句柄CB...转载 2019-07-24 06:57:40 · 1763 阅读 · 0 评论 -
CDC中图片绘制到控件上
CDC中////////////////////////////////////////////////////CDC->StretchBlt(int x,int y,int nWidth,int nHeight,CDC *pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight,DWORD dwRop)/////////...转载 2019-07-24 06:57:17 · 1164 阅读 · 0 评论 -
内存中绘图 Memdc
内存中绘图 MemdcCDC MemDC; //首先定义一个显示设备对象,所有的绘制首先绘制到这块内存中CBitmap MemBitmap; //定义一个位图对象//随后建立与屏幕显示兼容的内存显示设备MemDC.CreateCompatibleDC(NULL);MemDC.SetStretchBltMode(HALFTONE);//这时还不能绘图,因为没有地方画...转载 2019-07-25 18:10:01 · 1023 阅读 · 0 评论 -
MFC中动态创建button及添加响应事件
MFC中动态创建button及添加响应的事件,主要步骤如下:1、在头文件(**Dlg.h)中添加一个CButton类型,例如:CButton btn;2、在(**Dlg.cpp)的OnInitDialog中创建并显示button:btn.Create(“按钮”, WS_CHILD | BS_DEFPUSHBUTTON, CRect(10, 10, 100, 100), this, ...转载 2019-05-24 17:05:08 · 3452 阅读 · 0 评论 -
MFC动态按钮的创建及其消息响应 和 自定义消息
原文链接:http://www.cnblogs.com/gaohongchen01/p/4046525.html动态按钮(多个)的创建:1、在类中声明并定义按钮控件的ID#define IDC_D_BTN 100002、在类的OnInitDialog()函数中动态创建按钮(建立按钮对象时最好建立对象的指针)3、手动释放对象指针下面是动态生成多个按钮的例子:CBut...转载 2019-05-24 16:22:29 · 966 阅读 · 0 评论 -
MFC的GDI绘制坐标问题
MoveWindow和CDC的位置不一样,MoveWindow:起点坐标,宽,高, CDC:起点坐标,终点坐标原创 2019-07-27 13:59:49 · 509 阅读 · 0 评论 -
mfc中主窗体显示(任务栏上方显示)
intsx=GetSystemMetrics(SM_CXSCREEN);//获得屏幕的大小-宽intsy=GetSystemMetrics(SM_CYSCREEN);//获得高intst=GetSystemMetrics(SM_CYSIZE);//获得任务栏的高度MoveWindow(0,0,sx,sy-st);//移动窗口CRectrc;SystemPar...转载 2019-07-21 14:45:56 · 585 阅读 · 0 评论 -
MFC中OnCtlColor的用法(改变控件颜色)
HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); return hbr; // TODO: 在此更改 DC 的任何特性 CBrush newB...原创 2019-07-21 14:31:53 · 4212 阅读 · 0 评论 -
VC的MFC中重绘函数的使用总结(整理)
原文网址:http://www.cnblogs.com/x8023z/archive/2008/12/09/mfc33.html在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘InvalidateRect(&Rect)Invalidate()UpdateWindow()当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_N...转载 2019-07-07 21:33:50 · 1171 阅读 · 0 评论 -
MFC 之 重绘按键Cbutton
上次我们学习了如何美化对话框的界面,这次我们为上次的对话框添加两个按钮,一个是关闭按钮,另一个是最小化按钮,好,现在我们先看一下效果:是不是很难看,因为我们的对话框美化了,所以我们的按钮也要美化,因为采用贴图的方式来美化,所以,我先给出这两个按钮的PNG格式的图片,该图片支持透明色,具体如下:关闭按钮效果图:最小化按钮效果图:这两张效果图是我自己从网上找的,可能不是很合适,但是用来...转载 2019-07-07 21:21:56 · 1331 阅读 · 1 评论 -
MFC/VC++中怎样设置位图按钮并且位图不会覆盖文字——–位图按钮
1:第一次尝试设置 IDC_BUTTON3按钮风格的bitmap为true在OnInitialDilog中:CButton* cbpTest = NULL; HINSTANCE hInstance=AfxGetResourceHandle();HBITMAP m_hBmp4=(HBITMAP)LoadImage(hInstance, MAKEINTRESOURC...转载 2019-07-07 19:04:32 · 953 阅读 · 0 评论 -
VS2010 MFC中控件、对话框等背景颜色动态修改的方法
通过类向导,或者手动添加消息:WM_CTLCOLOR,其消息响应函数为:afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)1 2在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色、背景色以及字体。该消息处理函数还要求返回一个画刷的句柄...转载 2019-06-03 09:55:42 · 1145 阅读 · 0 评论 -
MFC对话框中处理Enter或Esc按键事件方法
建立好的MFC的对话框,按下Enter或Esc时,系统会调用”默认“事件处理函数,也就是OnOK(),倘若自己的CFormView子类或者CDialog子类没有重写OnOK()函数,则会调用父类的OnOK,其结果是关闭界面。要屏蔽Enter键或Esc退出的功能,只需要将在CDialog中重写ONOK()函数即可。而要实现默认为“确定”功能,下面两种方法供参考:1.采用ClassWizard进...转载 2019-06-02 07:50:43 · 1457 阅读 · 0 评论 -
MFC笔记2(控件位置调整)
1.根据计算,使用GetClientRect(& ...)就可以调整好2.遇到了OK和Cancel按钮通过GetDlgItem(ID..)找不到id资源号的情况,最后通过给控件绑定控件变量到类中就可以用了,而不需通过ID获取控件对象,但是可能有些对控件的操作在还没有初始化完成就开始,得判断绑定了的成员是否还没有创建好窗口句柄(控件->M_Hwnd)3.添加消息相应函数,OnS...原创 2019-06-01 09:24:59 · 863 阅读 · 0 评论 -
MFC控件随窗口大小变化原理及实现
本文主要针对MFC的dialog,实现控件随窗口大小变化。原理:首先获取dialog的初始大小,当窗口发送变动时,调用OnSize事件和方法,计算缩放比例,然后对界面中的所有控件进行缩放和布局。实现:创建一个CMFCDemoDlg的dialog对话框;// CMFCDemoDlg 对话框class CMFCDemoDlg : public CDialogEx{// 构造...转载 2019-06-01 09:24:27 · 1222 阅读 · 1 评论 -
mfc控件位置调整和坐标确定 .
在mfc工程中控件或者窗口位置的调整是经常遇到的,特别是基于对话框的工程。位置的调整包括坐标、长度和宽度的变化,一般在窗口类的OnSize函数中实现。控件位置的调整涉及的函数有:GetWindowRect()、ScreenToClient()、GetClientRect()、MoveWindow()或SetWindowPos(),功能意义如下:GetWindowRect():获得窗口在屏...转载 2019-06-01 09:24:11 · 5073 阅读 · 0 评论 -
MFC改变控件位置和大小
最近经常要用到改变控件在对话框上的位置和大小,一直找不到有效的方法,查看了很多资料。这篇博文还算靠谱,转载到这里了。 void CmyqeDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); if(nType!=SIZE_MINIMIZED) ...转载 2019-06-01 09:24:01 · 2877 阅读 · 0 评论 -
DrawItem
原文链接:http://blog.csdn.net/jiftlixu/article/details/4893505今天从CButton派生了一个类CUIButton,主要用于自绘,按照基本的流程,重写DrawItem方法。步骤如下:点击CUIButton按钮,在右键弹出菜单中选择“add windows message Handler",找到DrawItem,为其添加消息映射,添加...转载 2019-07-07 23:11:50 · 770 阅读 · 0 评论