摘要: //classCMainWindow:publicCFrameWndvoidCMainWindow::OnSize(UINTnType,intcx,intcy){CFrameWnd::OnSize(nType,cx,cy);//TODO:在此处添加消息处理程序代码//SIZE_RESTOREDWindowhasbeenresized,butneitherSIZE_MINIMIZEDnorSIZE_MAXIMIZEDapplies.if(nType==SIZE_RESTORED){/*获取屏幕大小*/intiScreenW=GetSystemMetrics(SM_CXSCREEN);intiSc 阅读全文
posted @ 2013-11-06 11:41 xingrun 阅读(999) 评论(0) 推荐(0) 编辑
摘要: MFC 对 Windows API 进行了封装,在很多方面都会提供便利。用 FromHandle 返回零时对象的指针,就可以调用各种类的方法。临时对象会在 OnIdle 中销毁。这里对 FromHandle 的实现原理从源码上进行解析。// // 1 // CWnd* PASCAL CWnd::FromHandle(HWND hWnd) { CHandleMap* pMap = afxMapHWND(TRUE); //create map if not exist ASSERT(pMap != NULL); CWnd* pWnd = (CWnd*)pMap->FromH... 阅读全文
posted @ 2013-11-05 23:07 xingrun 阅读(2050) 评论(0) 推荐(0) 编辑
摘要: 用GetDC()得到的DC,必须调用ReleaseDC()用CreateDC()创建的DC,必须调用DeleteDC()两者是不能混淆的.一种典型的错误代码如下:CDC*pDC=GetDC();…..//做一些无聊的事…..pDC->DeleteDC();//做了错误的事一般情况下,上面这个代码也能够工作,就是有时要报一点CHandleMap::RemoveHandle(HANDLEh)异常,跟踪进代码也看不出啥问题.区别:ReleaseDC()仅是释放对DC的引用DeleteDC()是删除DC对象,使用GetDC()的时候,明显的这个DC不是我们自己创建的,使用DeleteDC()的话 阅读全文
posted @ 2013-11-05 22:45 xingrun 阅读(1292) 评论(0) 推荐(0) 编辑
摘要: 1、创建Application object对象theApp 程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构造函数,所以即执行CWinApp类的构造函数。该函数定义于APPCORE.CPP第75行,你可以自己搜出来啃一啃,因此,CWinApp之中的成员变量将因为theApp这个全局对象的诞生而获得配置与初值。2、WinMain登场 用SDK编程序时,程序的入口点是WinMain函数,而在MFC程序里我们并没有看到WinMain函数,哦!~ 原来她是被隐藏在 阅读全文
posted @ 2013-11-05 22:06 xingrun 阅读(926) 评论(0) 推荐(0) 编辑
摘要: 开发时有一个工程的一个文件的断点无效,VS 2005提示说当前不会命中断点。源代码与原始版本不同,请在断点选项里设置允许源代码与原始版本不同。这个是针对单个断点进行设置。如果要对所有的断点进行设置,则要在“工具”——〉“选项”——〉“调试”——〉“要求源文件与原始版本完成匹配”去掉勾。 实际上有比这个办法更好的办法,就是将出问题的文件用notepad打开,然后另存为Unicode编码,覆盖原来的文件。 网上另外有一种办法是:通过重新格式化出问题的源文件亦可以解决,即在VS2005中选择 “编辑”——〉“高级”——〉“设置选定内容的格式”。 阅读全文
posted @ 2013-11-03 09:09 xingrun 阅读(926) 评论(0) 推荐(0) 编辑
摘要: 一)cvCreateMat创建和分配数据CvCreateMat会创建CvMat,并为CvMat分配数据。cvCreateMat可以配合cvInitMatHeader来初始化CvMat对象。因为CvCreateMat创建的CvMat,对象在堆上,数据也在堆上,所以cvInitMatHeader在指定新的数据所在的位置的同时,也将CvMat::hdr_refcount和CvMat::refcount都置为0,以便cvReleaseMat释放CvMat对象和数据。#include #include int main(){ double a[9]={1,2,3,4,5,6,7,8,9}; double 阅读全文
posted @ 2013-11-02 22:59 xingrun 阅读(8404) 评论(0) 推荐(0) 编辑
摘要: CV_IMPL CvMat* cvEncodeImage( const char* ext,const CvArr* arr, const int* _params )CV_IMPL IplImage* cvDecodeImage( const CvMat* _buf, int iscolor )据说可以编码bmp, png, ppm and tiff (encoding only).解码测试例子:f=fopen("a.jpg","r");unsigned char *m=(unsigned char*)malloc(1267*791);fread(m, 阅读全文
posted @ 2013-11-02 22:55 xingrun 阅读(4439) 评论(0) 推荐(0) 编辑
摘要: (注:第一种方法是我的原创 ^_^。 第二种方法是从网上学习的。)第一种方法:利用 板卡的API: GetJpegImage 得到 Jpeg 格式的图像数据,然后用opencv里的一个函数进行解码,得到IplImage对象。(我很郁闷海康威视采集卡为什么不直接提供RGB图像数据,而是提供了一个Jpeg数据给用户。)libjpeg库就是专门处理 jpeg 格式的图像数据的,包括解码缩jpeg 格式的图像等。opencv的库依赖于libjpeg库。我看了libjpeg库的源代码,然后又看了opencv 里 cvLoadImage这部分的源代码,发现opencv已经封装好了一个图像解码器: cvIm 阅读全文
posted @ 2013-11-01 22:17 xingrun 阅读(6113) 评论(0) 推荐(1) 编辑
摘要: Question:最近在开发中,设计了一个对话框来进行一系列的设定,其中有一组Radio Buttons(单选按钮),但在Debug下,发现对话的弹出有点延迟,经过分析,确定是因为在对话框弹出之前,先TRACE出了一系列的警告,警告的内容就是"Warning: skipping non-radio button in group".Reason:经过分析MFC的源代码,发现这个警告的原因是在这组Radio Buttons中的最后一个Radio Button的下一个控件的Group属性为FALSE。在MFC中当我们将一组Radio Buttons一个变量关联起来是通过函数vo 阅读全文
posted @ 2013-11-01 16:52 xingrun 阅读(822) 评论(0) 推荐(0) 编辑
摘要: Visual Studio 2005 移植 - WINVER,warning C4996, error LINK1104一、WINVER Compile result: WINVER not defined. Defaulting to 0x0502 (Windows Server 2003) windows server 2003 winver>=0x0502 windows xp winver>=0x0501 windows 2000 winver>=0x0500 windows nt 4.0 winver>=0x0400 windows me winver> 阅读全文
posted @ 2013-11-01 16:45 xingrun 阅读(227) 评论(0) 推荐(0) 编辑