我正在尝试创建一个与 windows API GetPixel() 函数等效的函数,但我想创建屏幕的位图,然后读取该缓冲区。
这就是我所得到的(主要是从谷歌搜索中复制粘贴的),当我运行它时,它只打印出 0。我想我大部分都说对了,我的问题是我不知道如何读取 BYTE 变量。
所以我的问题是,我需要做什么才能让它用我的 for 循环打印出一些随机颜色(R、G 或 B)?
#include <Windows.h>
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main() {
HDC hdc,hdcMem;
hdc = GetDC(NULL);
hdcMem = CreateCompatibleDC(hdc);
HBITMAP hBitmap = CreateCompatibleBitmap(hdc, 1680, 1050);
BITMAPINFO MyBMInfo = {0};
MyBMInfo.bmiHeader.biSize = sizeof(MyBMInfo.bmiHeader);
// Get the BITMAPINFO structure from the bitmap
if(0 == GetDIBits(hdcMem, hBitmap, 0, 0, NULL, &MyBMInfo, DIB_RGB_COLORS)) {
cout << "error" << endl;
}
// create the bitmap buffer
BYTE* lpPixels …Run Code Online (Sandbox Code Playgroud) 如何在不导致代码停止执行的情况下输入输入?我一直在寻找答案,在过去的20分钟内没有结果.
cin >> string; 暂停代码AFAIK.
我需要使用多线程,还是有更好的方法?(我甚至不知道多线程是否有效.)
我最近开始学习c ++,至少可以说是初学者,所以请详细解释并包含我可能需要的任何库,谢谢.