當前位置:首頁 » 編程語言 » 家譜管理系統c語言運行截圖
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

家譜管理系統c語言運行截圖

發布時間: 2023-05-01 16:27:23

c語言怎麼實現截圖

1、用C語言實現windows程序截圖,太麻煩。建議用C++做比較好。
2、截圖常式:

#ifndefCAPTUREBLT
#defineCAPTUREBLT0x40000000
#endif
HBITMAPCaptureScreen(LPRECTlpRect)//lpRect為NULL時表示全屏幕截圖
{
HDChdc,hdcMem;
HBITMAPhemfCopy;
HWNDhwndScr;
intdstcx,dstcy;
if(lpRect)
{
dstcx=lpRect->right-lpRect->left;
dstcy=lpRect->bottom-lpRect->top;
}
else
{
dstcx=GetSystemMetrics(SM_CXSCREEN);
dstcy=GetSystemMetrics(SM_CYSCREEN);
}
if(LockWindowUpdate(hwndScr=GetDesktopWindow()))
{
hdc=GetDCEx(hwndScr,NULL,DCX_CACHE|DCX_LOCKWINDOWUPDATE);
hdcMem=CreateCompatibleDC(hdc);
if(NULL==hdcMem)
{
ReleaseDC(hwndScr,hdc);
LockWindowUpdate(NULL);
returnNULL;
}
hemfCopy=CreateCompatibleBitmap(hdc,abs(dstcx),abs(dstcy));
if(NULL==hemfCopy)
{
DeleteDC(hdcMem);
ReleaseDC(hwndScr,hdc);
LockWindowUpdate(NULL);
returnNULL;
}
SelectObject(hdcMem,hemfCopy);
if(lpRect)
StretchBlt(hdcMem,0,0,abs(dstcx),abs(dstcy),
hdc,lpRect->left,lpRect->top,dstcx,dstcy,SRCCOPY|CAPTUREBLT);
else
BitBlt(hdcMem,0,0,dstcx,dstcy,
hdc,0,0,SRCCOPY|CAPTUREBLT);
DeleteDC(hdcMem);
ReleaseDC(hwndScr,hdc);
LockWindowUpdate(NULL);
returnhemfCopy;
}
returnNULL;
}

㈡ c語言運行結果如何截屏

1 使用系統截屏功能。

需要使用按鍵print screen.在鍵盤上印的是prt sc。
單獨使用該鍵,會截整個屏幕,如果用alt+prt sc,則會截取當前窗口的部分。

截屏後,數據會報存在剪貼板中,這時可以打開系統畫圖工具,或者任意圖形編輯工具,粘貼。即可得到截屏後的數據,保存成文件即可。如果需要裁剪,也可以在這類工具中操作。

2 使用工具進行截屏。
目前提供快捷截屏的軟體很多,比如qq,搜狗輸入法,搜狗瀏覽器等都有截屏工具提供。
比如qq默認的截屏快捷鍵是ctrl+alt+a。同時按下三個鍵,會發現滑鼠箭頭變成彩色,這時點擊並選擇需要截屏的區域,雙擊即可完成截屏,將圖片保存在內存中。
也可以在截屏後,直接保存成文件。

㈢ C語言在運行下怎麼截圖

用鍵盤的一個鍵:print
screen
退出C語言界面後在畫圖里右鍵粘貼,然後保存圖片就可以了

㈣ C語言 服務項進行全屏幕截圖 但是截圖後是黑屏怎麼辦

沒搞過,只能猜測:「屏幕」資源是和具體用戶打開的界面有關的,所以MSDN說你需要獲得station和desktop。而GetProcessWindowStation和GetThreadDesktop(GetCurrentThreadId());獲得的都是當且進程和線程的station和desktop,而你在服務中,它根本就沒有station和desktop啊,你拿到的是啥?

感覺你需要獲得當且登錄用戶而不是服務的station和desktop,但是我確實不會