當前位置:首頁 » 編程語言 » c語言全屏

c語言全屏

發布時間: 2022-04-25 07:20:47

c語言的全屏問題

全屏功能是操作系統提供的, C語言本身沒有全屏功能.
Windows系統中, 正統的做法是ChangeDisplaySettings, 全屏游戲一般都是這么做的.
或者可以做一個覆蓋全屏幕的窗口, 置於頂層, 做成假全屏.

⑵ C語言運行出全屏的的圖像怎樣截取

MS VC++ 的 c 程序可以實現。
方法:
(1)用鍵盤按鍵程序模擬法,把圖像發送到clipboard
(2)把clipboard圖像存入.bmp 圖像文件(或別的格式)。

編譯
cl simu_keyboard.c user32.lib Gdi32.lib
特殊頭文件:
#include <Windows.h>
#include <Winuser.h>
#include <memory.h>

提示:
(1)按鍵程序模擬子程序:
void snapscreen_2_clipboard()
{
keybd_event(VK_SNAPSHOT,0x2C,0,0);
keybd_event(VK_SNAPSHOT,0x2C,KEYEVENTF_KEYUP,0);
}
(2)clipboard圖像存入.bmp 圖像文件
FILE *fout;
/* --------------------------------------------------------------
* dib
int GetBytesPerPixel(int depth);
int GetBytesPerRow(int width, int depth);
int GetBitmapBytes(int width, int height, int depth);
* --------------------------------------------------------------*/
int GetBytesPerPixel(int depth)
{ return (depth==32 ? 4 : 3);
}

int GetBytesPerRow(int width, int depth)
{
int bytesPerPixel = GetBytesPerPixel(depth);
int bytesPerRow = ((width * bytesPerPixel + 3) & ~3);
return bytesPerRow;
}

// bmi.bmiHeader.biWidth, bmi.bmiHeader.biHeight, bmi.bmiHeader.biBitCount
int GetBitmapBytes(int width, int height, int depth)
{
return height * GetBytesPerRow(width, depth);
}

void save_clipboard_img_to_bmp()
{
char nameout[80];
HANDLE h_bitmap,h_dib;
BITMAPINFO bmi;
HDC hDC;
int imageBytes;
BITMAPFILEHEADER hdr;
int scanLineCount;
unsigned char *img;
if (!OpenClipboard(NULL)) {
printf("Can not open clipboard\n");
exit(0);
};
if (DEBUG ==1) printf("pass open clipboard\n");
// HANDLE GetClipboardData(UINT uFormat);
h_bitmap = GetClipboardData(CF_BITMAP);
h_dib = GetClipboardData(CF_DIB);
if (h_bitmap ==NULL || h_dib ==NULL){
printf("I got NULL bitmap: ");
} else { printf("I got bitmap: ");};
memcpy(&bmi,h_dib,sizeof(bmi));
printf("%d x %d \n",bmi.bmiHeader.biWidth, bmi.bmiHeader.biHeight);
hDC = CreateCompatibleDC(NULL); // Gdi32.lib.
CloseClipboard();

bmi.bmiHeader.biCompression = BI_RGB;
// possible to use part of imgage with img_w,img_h
imageBytes = GetBitmapBytes(bmi.bmiHeader.biWidth, bmi.bmiHeader.biHeight, bmi.bmiHeader.biBitCount);
printf("pass GetBitmapBytes=%d \n",imageBytes);
img = (char *) malloc(imageBytes);
if (!img) {
printf("No enought memory for img !\n"); exit(0);
}

// BITMAPFILEHEADER hdr;
hdr.bfType = ((WORD) ('M' << 8) | 'B'); // is always "BM"
hdr.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)
+ (bmi.bmiHeader.biClrUsed * sizeof(RGBQUAD)) + bmi.bmiHeader.biSizeImage;
hdr.bfReserved1 = 0;
hdr.bfReserved2 = 0;
hdr.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)
+ (bmi.bmiHeader.biClrUsed * sizeof(RGBQUAD));
scanLineCount = GetDIBits(hDC,h_bitmap,0,bmi.bmiHeader.biHeight, img, &bmi, DIB_RGB_COLORS);
strcpy(nameout,"keyb_tmp.bmp");
if ( (fout = fopen(nameout,"wb") ) == NULL ) {
printf("\007Cann't open output file: %s ", nameout);exit(1);
};
fwrite( &hdr, sizeof(BITMAPFILEHEADER ), 1, fout );
fwrite( &bmi, sizeof(BITMAPINFO), 1, fout );
fwrite( img, sizeof(unsigned char),imageBytes, fout );
fclose(fout);
printf("Output in %s\n",nameout);
}
/* -------end dib and bmp ----- */

⑶ c語言編寫的程序全屏運行如何截圖

摘要 用電腦系統截圖快捷鍵就可以的。

⑷ c語言寫的程序怎麼全屏

普通的C語言程序都是在命令行下運行的,也就是說是為了在dos,unix這些命令行形式的操作系統上運行而准備的,這些系統本身就沒有窗口概念,所以一切程序都可以說是全屏的。
。。

類似VC++這種基於windows平台的開發工具才有全屏的功能,實現么,只要在創建窗口的時候調用API函數取得屏幕大小,再把窗口大小設成屏幕大小就行了,反正windows平台下的程序都是窗口,所謂全屏程序其實就是一個覆蓋住整個顯示器的窗口程序。知道這個其他就是翻函數手冊了~~~

⑸ C語言使窗口全屏

int Winmain(){/*...*/}
最好直接新建Win32Application
否則HWND等會導致意想不到的結果

⑹ C語言中,如何使輸出結果的DOS窗口最大化。

不知道你用VC++建立文件是不是對的,你這樣:
文件--->新建---->文件選項卡--->C++文件-->OK
輸入代碼編譯運行

選擇「關閉」終止應用程序。關閉&忽略按鈕。

你不會用的是TC吧,生成的是十六位的應用程序,你換一個32位的編譯器就OK了,比如DEV_C++或VC++ 6.0或VS2008都行

不會吧,我這邊運行的時候成功了啊,不過中間是要卡一下,因為要執行system命令之前就已經生成小的窗口了,只有調用了這兩個語句之後才會最大化

老子日哦,遇到DEBUG命令就報毒,瘋了,這殺毒軟體太敢盡殺絕了
手動按ALT+ENTER

#include<stdio.h>
#include<stdlib.h>
int main()
{
system("echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul");
system("chcp 437>nul");
system("graftabl 936>nul");
printf("從一個美麗的地方\n");
return 0;
}

dixnuits寫的只是有點小問題,就是把void改成int,再在最後加一個return 0;就OK了
寫得不錯,沒有一點BUG,分你就給他吧,畢竟他的答案更符合你的要求

#include <windows.h>
#include <stdio.h>

typedef BOOL (WINAPI *PROCGETCONSOLEDISPLAYMODE)(LPDWORD);
typedef BOOL (WINAPI *PROCSETCONSOLEDISPLAYMODE)(HANDLE,DWORD,LPDWORD);

PROCGETCONSOLEDISPLAYMODE GetConsoleDisplayMode;
PROCSETCONSOLEDISPLAYMODE SetConsoleDisplayMode;

int main()
{

DWORD dwNewMode=1;
DWORD dwOldMode=0;
HMODULE hKernel32 = GetMoleHandle("kernel32");
if (!hKernel32)
return 0;

GetConsoleDisplayMode = (PROCGETCONSOLEDISPLAYMODE)
GetProcAddress(hKernel32,"GetConsoleDisplayMode");

if (!GetConsoleDisplayMode)
return 0;

SetConsoleDisplayMode = (PROCSETCONSOLEDISPLAYMODE)
GetProcAddress(hKernel32,"SetConsoleDisplayMode");

if (!SetConsoleDisplayMode)
return 0;

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleDisplayMode(hOut,dwNewMode,&dwOldMode);

GetConsoleDisplayMode(&dwOldMode);

printf("你好啊\n");
return 0;

}

⑺ 怎麼是C語言程序運行窗口全屏顯示

首先在上面單擊右鍵,選擇「屬性」,然後按照圖片的參數來填寫。

⑻ c語言,怎麼讓編譯後的程序,在運行時,全屏顯示

對程序的exe文件右鍵,屬性->屏幕,選窗口,然後確定

⑼ 怎麼用C語言使運行時DOS窗口全屏顯示

  1. 不能用C語言使運行時DOS窗口全屏顯示。在dos窗口環境是Windows預先設置的,是外部控制的,它本身不能控制它所在的窗口。所以無法在C語言運行時調整dos窗口。

  2. 創建Cmd.exe的快捷方式,修改屬性中的顯示方式,可以預設好窗口大小。


⑽ 如何讓C語言程序全屏運行

開始/運行/cmd
右鍵/屬性/選全屏幕,保存選項
改回來就在打開cmd
情況下
alt+tab
在選cmd右鍵/屬性/選窗口,保存選項

熱點內容
天龍搶店腳本 發布:2025-07-16 00:14:47 瀏覽:957
華為榮耀存儲卡 發布:2025-07-16 00:10:40 瀏覽:658
mysql創建utf8資料庫 發布:2025-07-16 00:04:08 瀏覽:104
開機系統用戶名密碼多少 發布:2025-07-16 00:03:58 瀏覽:692
成都高品質安全存儲櫃 發布:2025-07-15 23:45:38 瀏覽:55
頁面演算法操作系統 發布:2025-07-15 23:35:30 瀏覽:129
程序加密專家 發布:2025-07-15 23:28:13 瀏覽:486
別克君威15t怎麼選配置 發布:2025-07-15 23:26:52 瀏覽:509
游戲分流解壓 發布:2025-07-15 23:24:20 瀏覽:161
C語言中撤銷 發布:2025-07-15 23:24:18 瀏覽:582