MFC添加类向导并实现响应

一、MFC添加类向导

源文件→右键添加类向导

二、添加键盘enter消息响应

添加以后就可以在下面实现自己想要的消息响应了

三、项目示例:添加键盘消息响应实现图像边缘检测结果对话框显示

按下回车键就会显示边缘检测结果

1、EdgeDetect.cpp

cpp 复制代码
void EdgeDetect(SIZE sz, PBYTE pSrc, PBYTE pDst)
{
    ASSERT(pSrc);
    ASSERT(pDst);

    int w = sz.cx;
    int h = sz.cy;

    for (int y = 1; y < h - 1; y++)
    {
        for (int x = 1; x < w - 1; x++)
        {
            int v01 = pSrc[(y - 1) * w + x];
            int v10 = pSrc[y * w + (x - 1)];
            int v11 = pSrc[y * w + x];
            int v12 = pSrc[y * w + (x + 1)];
            int v21 = pSrc[(y + 1) * w + x];

            int g = 4 * v11 - v01 - v10 - v12 - v21;

            if (g < 0)   g = -g;
            if (g > 255) g = 255;

            pDst[y * w + x] = (BYTE)g;
        }
    }
}



void EdgeDetectRGB(int w, int h, BYTE* pRGB)
{
    int img_size = w * h;

  
    static BYTE s_pGray[IMG_MAX_SIZE];
    static BYTE s_pEdge[IMG_MAX_SIZE];

   
    RgbToYuv(w, h, pRGB, pRGB);

   
    for (int i = 0; i < img_size; i++)
    {
        s_pGray[i] = pRGB[i * 3];
    }


    SIZE sz;
    sz.cx = w;
    sz.cy = h;
    EdgeDetect(sz, s_pGray, s_pEdge);

    // PBYTE pSrc = s_pEdge
    // PBYTE pDst = s_pGray
   /* for (int i = 0; i < img_size; i++)
    {
        BYTE e = *pSrc++;
        *pDst++ = e;
        *pDst++ = e;
        *pDst++ = e;
    }*/
  
    for (int i = 0; i < img_size; i++)
    {
        BYTE e = s_pEdge[i];
        pRGB[i * 3 + 0] = e;
        pRGB[i * 3 + 1] = e;
        pRGB[i * 3 + 2] = e;
    }
}

.h

view.cpp

下面这种方法是直接在KeyDown里面直接执行边缘检测,随便按下键盘的某个键都行。

GrayToRGB代码实现

cpp 复制代码
void GrayToRGB(SIZE sz, PBYTE aRGB, PBYTE aGray, int nBPP)
{

	int img_size = sz.cx * sz.cy;  

	PBYTE pSrc = aGray;   
	PBYTE pDst = aRGB;    

	for (int i = 0; i < img_size; i++)
	{
		BYTE gray = pSrc[i]; //PBYTE gray = *pSrc++;

		pDst[0] = gray;  //*pSrc++ = gray
		pDst[1] = gray;
		pDst[2] = gray;

		pDst += 3;

	}
}
相关推荐
程与留1 小时前
09_Qt 布局管理系统——QHBoxLayout、QVBoxLayout、QGridLayout
c++·qt
神仙别闹1 小时前
基于QT(C++)实现旅游线路规划系统
c++·qt·旅游
郝学胜_神的一滴2 小时前
C++11 工程级应用 02:decltype与返回类型后置,让泛型代码告别类型玄学
c++·编程语言
tudousisi2222 小时前
8.25第二题训练
c++
星星.7222 小时前
2026河南萌新联赛第六场(郑州大学)补题B、D、L、J、I
数据结构·c++·算法
witton3 小时前
xmake中将proto文件生成C/C++文件然后再编译链接进项目
c语言·c++·mingw·protobuf·xmake·protobuf-c·protoc-gen-c
牛油果子哥q3 小时前
C++异常处理万字详解:try-throw-catch机制、栈展开、标准异常体系、自定义异常、工程规范、内存泄漏避坑
开发语言·jvm·c++
艾莉丝努力练剑3 小时前
【AI大模型接入SDK】C++日志体系与spdlog封装的理论部分
开发语言·c++·ide·人工智能·学习·面试·trae
旖旎夜光3 小时前
LCR 173:在点名(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找