c语言全屏
⑴ 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窗口全屏显示
不能用C语言使运行时DOS窗口全屏显示。在dos窗口环境是Windows预先设置的,是外部控制的,它本身不能控制它所在的窗口。所以无法在C语言运行时调整dos窗口。
创建Cmd.exe的快捷方式,修改属性中的显示方式,可以预设好窗口大小。
⑽ 如何让C语言程序全屏运行
开始/运行/cmd
右键/属性/选全屏幕,保存选项
改回来就在打开cmd
情况下
alt+tab
在选cmd右键/属性/选窗口,保存选项