鼠标位置获取溢出short

0
void BlackHole(const char* filename)
{
    IMAGE img1;
    int imagHight, imagWidth;

    //Bitmap bmp;
    //bmp.LoadBitmap("C:\\Users\\44805\\Desktop\\test.bmp");
    //bmp.fillHole({ 0,255,0 });
    //bmp.fillHole(300, 1600, { 0,255,0 });
    BYTE R;
    BYTE G;
    BYTE B;         //读取像素点RGB
    MOUSEMSG m;		// 定义鼠标消息
    // 读取图片至绘图窗口
    loadimage(&img1, _T("C:\\Users\\44805\\Desktop\\test.bmp"));//获取图片
    imagHight = img1.getheight();
    imagWidth = img1.getwidth();          //获取图片高度和宽度
    initgraph(imagWidth, imagHight, SHOWCONSOLE);//设置绘图窗口和图片一样大 并且显示控制台窗口
    putimage(0, 0, &img1);//显示图片
    char str[256] = { 0 };
    while (1)
    {
        FlushMouseMsgBuffer();
        // 获取一条鼠标消息
        m = GetMouseMsg();
        switch (m.uMsg)
        {
        case WM_LBUTTONDOWN:
            //如果按下鼠标左键 
            m.x = (short)m.x / 256;
            m.y = (short)m.y / 256;
            R = GetRValue(getpixel(m.x , m.y ));
            G = GetGValue(getpixel(m.x , m.y ));
            B = GetBValue(getpixel(m.x , m.y ));//获取RGB的三个分量值
            //bmp.fillHole(imagHight - m.y, m.x, { 0,255,0 });
            printf("X:%3d Y:%3d R:%3d G:%3d B:%3d \n", m.x, m.y, R, G, B);//打印像素点位置和对应的RGB值

            break;

        case WM_RBUTTONUP:
            return;	// 按鼠标右键退出程序
        }
    }

    closegraph();
}
ava
摆渡翁👻

2021-6-10

没错?完全可以正常运行 -  xiongfj ◑◑  2021-6-12
0

你是怎么判定“鼠标位置获取溢出”的?什么描述都没有,谁知道你的代码什么意思。

ava
慢羊羊

2021-6-12

技术讨论社区