摘要:MFC 用gdi绘制填充多边形区域这里的代码是实现一个三角形的绘制,并用刷子填充颜色 在OnPaint()函数里面运用的是给定的三角形的三个点,很多个点可以绘制多边形[cpp]view plaincopyCBrushbr(RGB(40,130,170));CRgnrgn;CPointarrpt[3]...
阅读全文
随笔分类 - VC/MFC
摘要:按钮自绘,将按钮区域分成三部分,左边、右边、中间都由贴图绘制,可用于手动进度条按钮,或者左右选择项按钮cpp代码部分:[cpp]view plaincopy//LRSkinButton.cpp:implementationfile//#include"stdafx.h"#include"CRedra...
阅读全文
摘要:内存从网上论坛摘抄整理思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾pEdit->LineScroll(pEdit->GetLineCount()); 滚动条滚动到最下端int len = pEdit->GetWindowTextLen...
阅读全文
摘要:vs2008中使用gdi+1.新建一个mfc工程2.在stdafx.h文件中加入以下几行语句:#include //#pragma comment(lib, "gdiplus.lib") //在工程属性中添加亦可using namespace Gdiplus; //使用GDI+的命名空间, 若不用...
阅读全文
摘要:在OnDraw(CDC* pDC) 中添加如下代码 CDC MemDC; //首先定义一个显示设备对象 CBitmap MemBitmap;//定义一个位图对象 //随后建立与屏幕显示兼容的内存显示设备 MemDC.CreateCompatibleDC(NULL); //这时还不能绘图,因为...
阅读全文
摘要:GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。例如你如果要设置某个控件的前景和背景...
阅读全文
摘要:#include#include/*GDI+startuptoken*/ULONG_PTRgdiplusStartupToken;/*DeclareWindowsprocedure*/LRESULTCALLBACKWindowProcedure(HWND,UINT,WPARAM,LPARAM);//...
阅读全文
摘要:#include #include /* GDI+ startup token */ULONG_PTR gdiplusStartupToken;/* Declare Windows procedure */LRESULT CALLBACK WindowProcedure (HWND, UINT, W...
阅读全文
摘要:方法一: 使用纯WIN32 DLL方法封装纯资源第一步,通过VS2005建立WIN32 DLL 空工程第二步,设置配置属性->链接器->高级->无入口点(是/NOENTRY)设置配置属性->C/C++->代码生成->运行时库(多线程/MT)第三步,加入图片资源并定义资源名称第四步,生成DLL,如Sk...
阅读全文
摘要:网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说.实例图片:首先建立一个标准的Win32 Application工程.选择a simple Win32 Application.然后建立我们的资源文件首先新建一个对话框资源,资源ID改为IDD_MAIN_DL...
阅读全文
摘要:vc/mfc获取rgb图像数据后动态显示及保存图片的方法该情况可用于视频通信中获取的位图数据回放显示或显示摄像头捕获的本地图像第一种方法#include加载 vfw32.lib 链接库[cpp]view plaincopy//------------------------------设置位图头结构...
阅读全文
摘要:项目最近需要实现播放视频功能,这个在上家公司就做过。虽然跟之前的场景不一样,有以前的功底还是很快可以解决,事实也确实如此。在使用DShow处理完视频分割与合并后,继续使用DShow显示视频,很快即完成。然而在播放dvr录制的视频文件时,发现播放帧率不对,分析发现是dvr存储的视频文件不是按标准格式进...
阅读全文
摘要:眼见为实(2):介绍Windows的窗口、消息、子类化和超类化这篇文章本来只是想介绍一下子类化和超类化这两个比较“生僻”的名词。为了叙述的完整性而讨论了Windows的窗口和消息,也简要讨论了进程和线程。子类化(Subclassing)和超类化(Superclassing)是伴随Windows窗口机...
阅读全文
摘要:1. 子类化改变一个已经存在的窗口实例的性质:消息处理与其他实例属性。在SDK编程范畴内,子类化就是改变一个窗口实例的窗口函数(通过GetWindowLong()和SetWindowLong()),子类化所要做的就是为某窗口实例编写新的窗口函数。其操作是在实例级别上进行的。在MFC中子类化的情况有所...
阅读全文
摘要:首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的...
阅读全文
摘要:在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种...
阅读全文
摘要:一 Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能 创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。二 Windows为当前执...
阅读全文
摘要:多态的实现机制有两种,一是通过查找绝对位置表,二是查找名称表;两者各有优缺点,那么为什么mfc的消息映射采用了第二种方法,而不是c++使用的第一种呢?因为在mfc的gui类库是一个庞大的继承体系,而里面的每个类有很多成员函数(只说消息反映相关的成员函数啊),而且在派生类中,需要改写的也比较少(我用来...
阅读全文
摘要:前言由于工作需要,这几天学了一点MFC,在AFX里看到很多熟悉的东西,如类型信息,序列化,窗口封装和消息分派。几乎每个界面库都必须提供这些基础服务,但提供的手法却千差万别。MFC大量地借用了宏,映射表来实现,而VCL则更多的在语言级别上给与支持。这其实是很容易理解的,因为C++是一个标准,不会因某个...
阅读全文
摘要:1、 DLL的概念可以向程序提供一些函数、变量或类。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。(2...
阅读全文