
MFC
文章平均质量分 63
Rachel-Zhang
yiyan程序员 https://weibo.com/u/2607574543
展开
-
MFC 获得各类指针、句柄的方法
最近有些人在问MFC编程一些要点,有一些句柄的获取、指针的获取是常见的问题,本文将对这些问题做以解释,参考了前人的笔录(见reference),希望能够帮助大家更方便地进行MFC程序开发。 一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针和句柄获取和操作问题。本文中将针对各类句柄的获得、指针的获得以及M原创 2012-07-27 12:44:19 · 41074 阅读 · 15 评论 -
MFC 多文档中同时打开多个文档
MFC多文档中的打开继承自CWinAppEx中的函数OnFileOpen(),这一点在CXXX.cpp中可以看到。比如如下:// CCVMFCAppBEGIN_MESSAGE_MAP(CCVMFCApp, CWinAppEx) ON_COMMAND(ID_APP_ABOUT, &CCVMFCApp::OnAppAbout) // 基于文件的标准文档命令 ON_COMMAND(ID原创 2012-04-09 16:16:19 · 9818 阅读 · 3 评论 -
opencv 彩色图像对比度增强
一般地,图像对比度都是在灰度图上进行增强,这在我的一篇文章中已经给出了实现方法(http://blog.youkuaiyun.com/abcjennifer/article/details/7401921),最通常的办法就是直方图均衡化,而彩色图像的对比度增强其实道理相同。这里给出我的实现方法:首先将RGB图像转到YCbCr分量,然后对Y分量上的图像进行直方图均衡化,最后进行图像合成。详见代码~(*^__原创 2012-04-05 15:30:03 · 41696 阅读 · 22 评论 -
MFC opencv 中恢复图像(重新加载)
CXXXDOC中显示图片:BOOL CCVMFCDoc::Load(IplImage** pp, LPCTSTR csFilename){ IplImage* pImg=NULL; pImg = cvLoadImage(csFilename,-1); // 读图像文件(DSCV) if (!pImg) return(false); cvFlip(pImg);原创 2012-04-09 08:25:48 · 5089 阅读 · 0 评论 -
opencv 中 傅里叶变换 FFT
void fft2(IplImage *src, IplImage *dst){ //实部、虚部 IplImage *image_Re = 0, *image_Im = 0, *Fourier = 0; // int i, j; image_Re = cvCreateImage(cvGetSize(src), IPL_DEPTH_64F, 1); //实部 //Imaginar原创 2012-03-16 10:56:39 · 33323 阅读 · 12 评论 -
opencv中用Sobel算子进行边缘检测
参数:workImg:当前工作图像(全局);img3:Sobel_edge结果;m_imagetype:图像类型(全局);OnEdgedetSobel(){ IplImage *img = cvCreateImage( cvGetSize(workImg), IPL_DEPTH_16S, 1); if(workImg->nChannels==3) OnColor原创 2012-03-16 07:53:27 · 7777 阅读 · 5 评论 -
opencv 图像阴影检测
参数说明:IplImage *workImg-当前全局变量,表示正在显示的图片。downleft, upright- 检测出的阴影部分矩形框的两个对角顶点。/*********************************************/ //阴影检测/*********************************************/CvPoint原创 2012-03-08 19:19:54 · 17583 阅读 · 26 评论 -
opencv绘制灰度直方图
代码之一#include #include #pragma comment( lib, "cv.lib" )#pragma comment( lib, "cxcore.lib" )#pragma comment( lib, "highgui.lib" )int main(){ IplImage* src=cvLoadImage("lena.jpg",0);原创 2012-03-03 18:46:51 · 10330 阅读 · 3 评论 -
opencv实现分水岭算法
// 分水岭算法原理// IplImage* marker_mask = 0;IplImage* markers = 0;//IplImage* img0 = 0, *img = 0, *img_gray = 0, *wshed = 0;IplImage *img_gray = 0, *wshed = 0;CvPoint prev_pt = {-1,-1};void on_原创 2012-03-03 15:56:29 · 11574 阅读 · 3 评论 -
opencv 画延长线
hough变换可以让我们检测到直线,这在前面已有详解,对于车道检测,我们需要其到图像边界的延长线一遍之后数据帧分析。以下代码帮助我们在opencv中画延长线,本来想用虚线表示延长线的,无奈参数调不好了……只好把bug的虚线贴上去注释掉了,希望牛人能给点帮助帮我调下吧其他的代码部分可供参考void CCVMFCView::OnDottedLine(CvPoint p1,CvPoint原创 2012-04-09 14:40:21 · 15077 阅读 · 7 评论 -
opencv MFC中的鼠标响应函数
方法一:bool check_line_state=false;IplImage* imgshow;void on_mouse4(int event, int x,int y,int flags,void* param){ int thickness=1; CvPoint p1,p2; if(event==CV_EVENT_LBUTTONDOWN) { ROI_rect原创 2012-04-24 10:30:02 · 8636 阅读 · 6 评论 -
MFC中Radio Button使用方法
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButto原创 2012-04-19 08:55:24 · 23659 阅读 · 1 评论 -
MFC单文档(SDI)转换成多文档(MDI)解决方案
由VC6.0自动生成的单文档和多文档工程存在着细微的区别,那么怎样将一个自动生成的单文档工程转换成为一个多文档工程呢?这个问题虽然比较简单,稍微细心一点的人都可以自己搞定。在这里,我为大家提供一个比较常见的修改方法,没有什么技术含量,还请大家多提意见! 第一步:修改字符串表添加新项ID为IDR_MYTEST,值为:/nTest/nTest/n/n/nTest.Documen转载 2012-05-11 13:57:58 · 3432 阅读 · 0 评论 -
VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
下面是彻底解决方法:在工程的stdafx.h中添加(如有类似语句,需注释掉)#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.#define WINVER 0x0501 // Change this to the appropriate value to ta转载 2012-05-11 19:33:46 · 23725 阅读 · 11 评论 -
MFC 窗口分割与通信
一、关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗转载 2012-05-11 14:00:01 · 10224 阅读 · 4 评论 -
MFC 单文档的全局变量
单文档中每个view类中有自己的局部变量,所以在应用程序中定义全局变量要在这些View类啊,Doc类啊的外面。待解决问题:希望对每处理一个文件,全局变量+1(如图1所示,期望处理后结果为5,CVMFC1不算)ok,问题实际上是MFC中如何设置和操作全局变量首先我们讲下最简单的解决方案,后面在分析下MFC原理(*^__^*) =====================原创 2012-04-19 16:15:00 · 6294 阅读 · 4 评论 -
MFC 静态文本框修改内容
待解决问题:MFC中静态文本框等静态控件的的修改解决方案:1. 修改静态控件ID(原始都是IDC_STATIC),改成别的任何的都可以,如这里我改成 IDC_TOTAL_CASES2. 比如我想一打开dialog就显示,那么就在OnInitDialog()中写上SetDlgItemText(IDC_TOTAL_CASES,ss);或者GetDlgItem(IDC_TOTAL_CAS原创 2012-04-19 20:13:56 · 46563 阅读 · 2 评论 -
MFC获取View类指针
现在知道的有三种方法: 1.当只有一个view类的时候,或者只想获取当前活动的view类,这时可以采用这种方法。 在当前使用的类中添加如下代码: CMainFrame* pFrame=(CMainFrame*)AfxGetMainWnd(); CListCtrlView* pView = (CListCtrlView*)pFrame转载 2012-04-19 10:04:36 · 13315 阅读 · 0 评论 -
对话框中获取View类指针
解决问题:View类的菜单中打开Dialog,并将Dialog的值传回View类解决方案:设Dialog类为Judge,View类为CVMFCView1.Judge.h 中定义一个C****View*类变量:CCVMFCView* pMain;2. 在Judge类中添加函数 OnShowDialog(CCVMFCView* pview),代替Domodalvoid CJud原创 2012-04-19 10:59:39 · 6310 阅读 · 3 评论 -
MFC+OPENCV实现角点检测
// 角点检测 // 根据《基于OpenCV的计算机视觉技术实现》#define max_corners 200; // 限定的最大角点数IplImage* srcImage = 0; // 待处理的源图像IplImage* ImageShow = 0; //原创 2012-03-03 15:51:34 · 4593 阅读 · 0 评论 -
opencv实现图像邻域均值滤波、中值滤波、高斯滤波
void CCVMFCView::OnBlurSmooth()//邻域均值滤波{ IplImage* in; in = workImg; IplImage* out = cvCreateImage(cvGetSize(in),IPL_DEPTH_8U,workImg->nChannels); cvSmooth(in,out,CV_BLUR,3,workImg->nChannels);原创 2012-03-03 12:42:06 · 18891 阅读 · 1 评论 -
MFC多文档中opencv处理图像打开、保存
需要在C**Doc和C**View中进行相应修改图像打开:Doc.cpp中:BOOL CCVMFCDoc::Load(IplImage** pp, LPCTSTR csFilename){ IplImage* pImg=NULL; pImg = cvLoadImage(csFilename,-1); // 读图像文件(DSCV) if (!pImg)原创 2012-03-02 21:19:04 · 11599 阅读 · 12 评论 -
初始化窗口
以下代码用于设置初始窗口大小、显示模式、是否固定窗口大小…… BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; //these sentenses are used to get the size of scre原创 2010-04-23 09:48:00 · 2839 阅读 · 0 评论 -
令人头疼的不兼容问题~~~
1>正在编译...1>dd.cpp1>c:/users/zrq/documents/visual studio 2008/projects/w/w/dd.cpp : error C4335: 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式1>c:/users/zrq/documents/visual studio 2008/projects/w/w/dd.cpp(1)原创 2010-04-09 10:21:00 · 5641 阅读 · 0 评论 -
MFC 贴图 填充 矩形
OnDraw()函数编写贴图并画矩形:Rectangle() 可直接画矩形(具体见代码) void CintelligentjudgingView::OnDraw(CDC* pDC){ CintelligentjudgingDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); int x=60,y=50; pDC->S原创 2010-04-21 08:12:00 · 4536 阅读 · 0 评论 -
MFC 贴图
MFC非背景贴图(也可以用于背景贴图):在OnDraw中实现: void CintelligentjudgingView::OnDraw(CDC* pDC){ CintelligentjudgingDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); int x=60,y=50; pDC->SetTextColor(R原创 2010-04-20 14:18:00 · 3732 阅读 · 0 评论 -
如何获得对话框指针
获得对话框指针: 假设CMyDialog为对话框类1.先在CMyDialog.cpp中声明一个全局变量CMyDialog* pDlg;2在OnInitDialog()的时候,pDlg = this;3.在别的类使用他的时候,在别的类的Cpp中添加extern CMyDialog* pDlg;4.pDlg->yourfunction(); 如何使用Tab Con原创 2010-04-19 14:32:00 · 9695 阅读 · 5 评论 -
使用MFC控件:
1.单选按钮radio button默认情况下,一个对话框上的all按钮都属于同一组button如果需要分组,去属性里找Group选项 2.Tab Control设置一个tab control 关联的变量 m_tab在函数中写:BOOL CQue::OnInitDialog(){ CDialog::OnInitDialog(); m_tabcontrol.Inser原创 2010-04-18 18:45:00 · 2048 阅读 · 1 评论 -
MFC中标准库的使用
比如现在我要用栈~ 在MFC中有三个现成的数据结构类:CArray, CList和CMap(数组、链表和映射),没有栈类(没有见过CStack)呵呵。不过栈的内部容器也是数组或者链表,所以我们可以在CArray或CList的基础上设计自己的栈类。另外也可以使用STL(标准模板库)中的栈(stack),使用的时候记得加上这两句:#include using namespace std; //原创 2010-03-28 18:52:00 · 3343 阅读 · 0 评论 -
怎样在一个项目中引用另一个项目的文件
有一个函数:ShellExecute Function Performs an operation on a specified file.SyntaxHINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCT原创 2010-03-28 16:36:00 · 6294 阅读 · 1 评论 -
怎样在除了Ondraw或者OnPaint函数中画图?
for example: 定义CClientDC dc(this); void CMyView::paint(int id){ CClientDC dc(this); int i,x[4],y[4],dx,dy; if(id ==0) { dx = 60; dy = 200; } else if(id ==1) { dx = 7原创 2010-04-29 14:54:00 · 3070 阅读 · 1 评论 -
如何使菜单栏变灰 MFC
下面讲下如何在MFC中使菜单栏变灰:/**使菜单栏变灰的方法:**1.设定想要变灰的菜单ID为ID_32771*2.假如我想设定的功能是:在点击了一次该按钮后禁止按钮*3.在我给菜单栏中的该按钮添加的消息响应函数ON_COMMAND(ID_32771, &CintelligentjudgingView::On32771 ) 之后再加一个ON_UPDATE_COM原创 2010-04-28 19:31:00 · 8889 阅读 · 0 评论 -
对话框贴图方法
(一)非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现.步骤:先在资源里Import一张图片,ID为IDB_BITMAP2然后在对话框上添加一个picture控件,右键点击打开属性,将type下拉框选择BITMAP,紧跟着下面就出现一个Image下拉框,拉开就会看到所有已经载入好的图片,选择你要的图片.运行程序即可看到. 方法2.通过原创 2010-05-15 11:59:00 · 2936 阅读 · 0 评论 -
用Opencv设置图像拷贝和覆盖
int imageClone(IplImage* pi,IplImage** ppo) // 复制 IplImage 位图{ if (*ppo) { cvReleaseImage(ppo); // 释放原来位图 } (*ppo) = cvCloneImage(pi); // 复制新位图 return(1);}i原创 2012-03-02 21:21:40 · 7121 阅读 · 1 评论 -
openCv 图像顺时针、逆时针旋转
通过下面这个函数调用Rotate90(workImg,270);//顺时针旋转Rotate90(workImg,90);//逆时针旋转实现,其实用该函数旋转任意度数对正方形图都ok,只是长方形图旋转后会有拉伸部分,不好掌握新图的长宽。void Rotate90(IplImage *workImg,int angle){ int opt = 0;原创 2012-02-18 12:18:44 · 12709 阅读 · 6 评论 -
MFC 多文档 最大化父窗口和子窗口
MFC 多文档 启动时就最大化父窗口or子窗口最简便的方法:类视图中:父窗口:CXXXApp类中的 InitInstance()中加m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); pMainFrame->UpdateWindow();子窗口:CChildFrame类中重载ActivateFrame函数:void CChildFram原创 2012-02-17 22:49:03 · 7444 阅读 · 3 评论 -
图像处理和图像识别中常用的OpenCV函数
2、cvNamedWindow:在屏幕上创建一个窗口;3、cvShowImage:在一个已创建好的窗口中显示图像;4、cvWaitKey:使程序暂停,等待用户触发一个按键操作;5、cvReleaseImage:释放图像文件所分配的内存;6、cvDestroyWindow:销毁显示图像文件的窗口;7、cvCreateFileCapture:通过参数设置确定要读转载 2012-02-18 09:50:36 · 4602 阅读 · 0 评论 -
MFC中快速应用OpenCV教程
论坛上看到非常经典的VS2008 + OpenCV 2.0下的配置过程:(这里用的是opencv2.0)1. 文件 | 项目 | MFC | MFC应用程序 |(新名称如MFCtest)|next2. 单文档,取消使用Unicode库选项,选中在静态库中使用MFC | next3. 取消ActiveX控件选项 | next | 完成4. 项目 | 属性 | 链接器 |原创 2012-01-26 21:17:44 · 8338 阅读 · 6 评论 -
MFC开发常见问题汇总(不断更新)
MFC在不同VC,VS版本上开发上会出现不同问题,所以我想把常见问题汇总一下,希望大家能提出意见一起完善,省得以后每次都要费劲找了哈!1. error C2664: strcpy : 不能将参数 1 从 CString 转换为 const char *等类似错误 解决方案:法1、项目属性-字符集-使用多字节字符集法2、把代码改成这样的形式 _T("insert in原创 2012-01-25 17:47:03 · 3461 阅读 · 0 评论 -
MFC 获取系统时间
SYSTEMTIME st; CString strDate,strTime; GetLocalTime(&st); strDate.Format(_T("%4d-%2d-%2d"),st.wYear,st.wMonth,st.wDay); strTime.Format(_T("%02d:%02d:%02d"),st.wHour,st.wMinute,st.wSecond);原创 2010-05-15 21:11:00 · 2576 阅读 · 0 评论