win32 截圖 獲取 資料

2021-05-26 15:18:36 字數 1554 閱讀 3171

**如下:

hdc hdesktop = getdc(getdesktopwindow());

int bitperpixel = getdevicecaps(hdesktop, bitspixel);

int width = getdevicecaps(hdesktop, horzres);

int height = getdevicecaps(hdesktop, vertres);

bitperpixel = 24;

hdc htemp = createcompatibledc(hdesktop);

hbitmap membitmap, oldmembitmap;

membitmap = createcompatiblebitmap(hdesktop, width, height);

oldmembitmap = (hbitmap)selectobject(htemp, membitmap);

if(oldmembitmap == null) return;

bitblt(htemp, 0, 0, width, height, hdesktop, 0, 0, srccopy);

file *fp = fopen("desk.bmp", "w+b");

bitmapinfoheader bih = ;

bih.bibitcount = bitperpixel;

bih.bicompression = bi_rgb;

bih.biheight = height;

bih.biplanes = 1;

bih.bisize = sizeof(bitmapinfoheader);

bih.bisizeimage = 3 * width * height;

bih.biwidth = width;

bitmapfileheader bfh = ;

bfh.bfoffbits = sizeof(bitmapfileheader) + sizeof(bitmapinfoheader);

bfh.bfsize = bfh.bfoffbits + 3 * width * height;

bfh.bftype = (word)0x4d42;

fwrite(&bfh, 1, sizeof(bitmapfileheader), fp);

fwrite(&bih, 1, sizeof(bitmapinfoheader), fp);

unsigned char * p = new unsigned char[width * height * 3];

getdibits(htemp, membitmap,

0,height,

p,(lpbitmapinfo) &bih,

dib_rgb_colors);

fwrite(p, 1, width * height * 3, fp);

delete p;

fclose(fp);

selectobject(htemp, oldmembitmap);

deletedc(htemp);

Win32程式設計

win32 malloc函式的底層實現是win32api utf 16編碼以16位無符號整數為單位,注意是16位為乙個單位,不是乙個字元就只有16位,這個要看字元的unicode編碼處於什麼範圍而定,有可能是2個位元組,也可能是4個位元組現在機器上的unicode編碼一般就是指utf 16 以兩個位...

win32控制台 win32工程 MFC工程的區別

空專案 控制台 問2個問題即可。1.控制台 vs win32 mfc?嗯,有不有臉?有臉,選win32或mfc。沒有臉,選控制台。臉就是視窗,就是window.s 這個有臉 這個沒臉 控制台與win32 mfc 互動方式的不同,前者是cml 命令模式 後者是gui 使用者介面 2.mfc vs wi...

win32 資料型別 vs c

1 在c 中做很多應用需要使用win32 api,但發現原型函式的一些資料型別看起來非常費勁,甚至在c 中 沒有 這種資料型別,查閱了一下資料,資料型別對應關係整理如下,希望對大家有用 2 bool system.int32 3 boolean system.int32 4 byte system....