A. c语言如何给自己写的程序加上图形界面
标题、背景和前景颜色、窗口大小等等这些可以用API函数实现
#include<windows.h>//加入头文件就可调用API函数
intmain()
{
HWNDhWnd=GetForegroundWindow();
HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);
SetWindowText(hWnd,"测试");//标题
SetConsoleTextAttribute(handle,FOREGROUND_GREEN|BACKGROUND_BLUE);//前景、背景颜色
return0;
}
VC6.0 能够在 XP 下很好的运行,无需进行额外的设置,但在 Win7、Win8 和 Win10 下,安装完成后还要修改兼容模式才可以。解决方法如下:
一、对于Win7和Win10,需要将VC6.0的兼容模式修改为WindowsXP SP3:
1、在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”。
B. 现在用c语言编写图形界面程序(软件)都用什么编译环境(工具)
在Windows 操作系统中编写图形用户界面,一般都用 Visual C++(包括 Visual Studio 中的 Visual C++)。如果像楼主所说的,要用C语言,那只能用 Windows API 函数了。如果还允许C++语言,那么还可以用MFC(当然也可以用 Windows API 函数)。
当然,也可以不用微软的库,比如说用Qt之类的库。
==========================================================
在Linux操作系统中编写图形用户界面,就用gcc编译器加上Xlib库或者gtk库或者Qt库。如果允许使用C++语言,那可以用g++编译器,上面三个库都可以用,另外还可以用wxWidgets库。
C. C语言图形界面怎么做出来
windows平台下,含入windows.h,就可以编写图形界面的程序了。跟面向过程还是面向对象没有关系。
并且C++写界面一点都不麻烦,它也有很多类库可以让你选择,如VCL,MFC,还有qt之类的跨平台库。
初学者很想写windows图形界面的程序,推荐C++ Builder,虽然现在它的发展不太明朗,但写起图形界面来,还是相当容易的,跟Visual Basic一样拖拖控件就好了。
D. C语言图形界面的编写
qt WindowsAPI
感觉你跟我刚学的时候 好像 老想着编写图形界面程序 结果我学了 一大堆 都不知道学啥
感觉java图形界面比较好学吧
课本上就有
如果你学c语言图形界面学的一塌糊涂 就直接学Java 吧
E. 怎么用c语言编出的程序做成带有图形界面的程序
你可以学习以下Win32 SDK,也就是windows编程,windows上图形界面最基础的东西,学了这个对以后学习mfc或者winform都很有帮助。推荐你一本书《Windows程序设计(第5版 珍藏版)》,很经典的一本书。
F. 怎样用c语言写一个图形界面
代码
#include <windows.h>
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ) ; //声明用来处理消息的函数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow )
{
static TCHAR szAppName[] = TEXT("MyWindow") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ; //声明一个窗口类对象
//以下为窗口类对象wndclass的属性
wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口样式
wndclass.lpszClassName = szAppName ; //窗口类名
wndclass.lpszMenuName = NULL ; //窗口菜单:无
wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH) ; //窗口背景颜色
wndclass.lpfnWndProc = WndProc ; //窗口处理函数
wndclass.cbWndExtra = 0 ; //窗口实例扩展:无
wndclass.cbClsExtra = 0 ; //窗口类扩展:无
wndclass.hInstance = hInstance ; //窗口实例句柄
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION ) ; //窗口最小化图标:使用缺省图标
wndclass.hCursor = LoadCursor( NULL, IDC_ARROW ) ; //窗口采用箭头光标
if( !RegisterClass( &wndclass ) )
{ //注册窗口类, 如果注册失败弹出错误提示
MessageBox( NULL, TEXT("窗口注册失败!"), TEXT("错误"), MB_OK | MB_ICONERROR ) ;
return 0 ;
}
hwnd = CreateWindow( //创建窗口
szAppName, //窗口类名
TEXT("我的窗口"), //窗口标题
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT, //窗口初始显示位置x:使用缺省值
CW_USEDEFAULT, //窗口初始显示位置y:使用缺省值
CW_USEDEFAULT, //窗口的宽度:使用缺省值
CW_USEDEFAULT, //窗口的高度:使用缺省值
NULL, //父窗口:无
NULL, //子菜单:无
hInstance, //该窗口应用程序的实例句柄
NULL //
) ;
ShowWindow( hwnd, iCmdShow ) ; //显示窗口
UpdateWindow( hwnd ) ; //更新窗口
while( GetMessage( &msg, NULL, 0, 0 ) ) //从消息队列中获取消息
{
TranslateMessage( &msg ) ; //将虚拟键消息转换为字符消息
DispatchMessage( &msg ) ; //分发到回调函数(过程函数)
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
HDC hdc ; //设备环境句柄
PAINTSTRUCT ps ; //绘制结构
RECT rect; //矩形结构
switch( message ) //处理得到的消息
{
case WM_CREATE: //窗口创建完成时发来的消息
MessageBox( hwnd, TEXT("窗口已创建完成!"), TEXT("我的窗口"), MB_OK | MB_ICONINFORMATION ) ;
return 0;
case WM_PAINT: //处理窗口区域无效时发来的消息
hdc = BeginPaint( hwnd, &ps ) ;
GetClientRect( hwnd, &rect ) ;
DrawText( hdc, TEXT( "Hello, 卫班科技!" ), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER ) ;
EndPaint( hwnd, &ps ) ;
return 0 ;
case WM_LBUTTONDOWN: //处理鼠标左键被按下的消息
MessageBox( hwnd, TEXT("鼠标左键被按下。"), TEXT("单击"), MB_OK | MB_ICONINFORMATION ) ;
return 0;
case WM_DESTROY: //处理窗口关闭时的消息
MessageBox( hwnd, TEXT("关闭程序!"), TEXT("结束"), MB_OK | MB_ICONINFORMATION ) ;
PostQuitMessage( 0 ) ;
return 0;
}
return DefWindowProc( hwnd, message, wParam, lParam ) ; //DefWindowProc处理我们自定义的消息处理函数没有处理到的消息
}
G. 怎么用C语言写图形界面
这是最简单的界面程序://c++.cpp:定义应用程序的入口点。
//
#include"stdafx.h"
#include"c++.h"
#defineMAX_LOADSTRING100
//全局变量:
HINSTANCEhInst; //当前实例
TCHARszTitle[MAX_LOADSTRING]; //标题栏文本
TCHARszWindowClass[MAX_LOADSTRING]; //主窗口类名
//此代码模块中包含的函数的前向声明:
ATOM MyRegisterClass(HINSTANCEhInstance);
BOOL InitInstance(HINSTANCE,int);
LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
INT_PTRCALLBACK About(HWND,UINT,WPARAM,LPARAM);
intAPIENTRY_tWinMain(HINSTANCEhInstance,
HINSTANCEhPrevInstance,
LPTSTRlpCmdLine,
intnCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
//TODO:在此放置代码。
MSGmsg;
HACCELhAccelTable;
//初始化全局字符串
LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);
LoadString(hInstance,IDC_C,szWindowClass,MAX_LOADSTRING);
MyRegisterClass(hInstance);
//执行应用程序初始化:
if(!InitInstance(hInstance,nCmdShow))
{
returnFALSE;
}
hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_C));
//主消息循环:
while(GetMessage(&msg,NULL,0,0))
{
if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return(int)msg.wParam;
}
//
//函数:MyRegisterClass()
//
//目的:注册窗口类。
//
//注释:
//
//仅当希望
//此代码与添加到Windows95中的“RegisterClassEx”
//函数之前的Win32系统兼容时,才需要此函数及其用法。调用此函数十分重要,
//这样应用程序就可以获得关联的
//“格式正确的”小图标。
//
ATOMMyRegisterClass(HINSTANCEhInstance)
{
WNDCLASSEXwcex;
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style =CS_HREDRAW|CS_VREDRAW;
wcex.lpfnWndProc =WndProc;
wcex.cbClsExtra =0;
wcex.cbWndExtra =0;
wcex.hInstance =hInstance;
wcex.hIcon =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_C));
wcex.hCursor =LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName =MAKEINTRESOURCE(IDC_C);
wcex.lpszClassName =szWindowClass;
wcex.hIconSm =LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));
returnRegisterClassEx(&wcex);
}
//
//函数:InitInstance(HINSTANCE,int)
//
//目的:保存实例句柄并创建主窗口
//
//注释:
//
//在此函数中,我们在全局变量中保存实例句柄并
//创建和显示主程序窗口。
//
BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)
{
HWNDhWnd;
hInst=hInstance;//将实例句柄存储在全局变量中
hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
if(!hWnd)
{
returnFALSE;
}
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
returnTRUE;
}
//
//函数:WndProc(HWND,UINT,WPARAM,LPARAM)
//
//目的:处理主窗口的消息。
//
//WM_COMMAND -处理应用程序菜单
//WM_PAINT -绘制主窗口
//WM_DESTROY -发送退出消息并返回
//
//
LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
intwmId,wmEvent;
PAINTSTRUCTps;
HDChdc;
switch(message)
{
caseWM_COMMAND:
wmId=LOWORD(wParam);
wmEvent=HIWORD(wParam);
//分析菜单选择:
switch(wmId)
{
caseIDM_ABOUT:
DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);
break;
caseIDM_EXIT:
DestroyWindow(hWnd);
break;
default:
returnDefWindowProc(hWnd,message,wParam,lParam);
}
break;
caseWM_PAINT:
hdc=BeginPaint(hWnd,&ps);
//TODO:在此添加任意绘图代码...
EndPaint(hWnd,&ps);
break;
caseWM_DESTROY:
PostQuitMessage(0);
break;
default:
returnDefWindowProc(hWnd,message,wParam,lParam);
}
return0;
}
//“关于”框的消息处理程序。
INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)
{
UNREFERENCED_PARAMETER(lParam);
switch(message)
{
caseWM_INITDIALOG:
return(INT_PTR)TRUE;
caseWM_COMMAND:
if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)
{
EndDialog(hDlg,LOWORD(wParam));
return(INT_PTR)TRUE;
}
break;
}
return(INT_PTR)FALSE;
}
H. 求高手帮忙如何给一个C语言编写软件的图形界面
#include<windows.h>
HANDLEhOut;
voidShadowWindowLine(char*str);//在具有阴影效果的窗口中显示一行字符,窗口为居中显示
voidDrawBox(boolbSingle,SMALL_RECTrc);//绘制边框
voidmain()
{
hOut=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出设备句柄
SetConsoleOutputCP(437);//设置代码页
ShadowWindowLine("Displayalineofwords,andcenterthewindowwithshadow.");
CloseHandle(hOut);//关闭标准输出设备句柄
}
voidShadowWindowLine(char*str)
{
CONSOLE_SCREEN_BUFFER_INFObInfo;//窗口缓冲区信息
GetConsoleScreenBufferInfo(hOut,&bInfo);//获取窗口缓冲区信息
//计算显示窗口大小和位置
intx1,y1,x2,y2,chNum=strlen(str);
x1=(bInfo.dwSize.X-chNum)/2-2;
y1=bInfo.dwSize.Y/2-2;
x2=x1+chNum+4;
y2=y1+5;
WORDatt1=BACKGROUND_INTENSITY;//阴影属性
WORDatt0=FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY|
BACKGROUND_RED|BACKGROUND_BLUE;//文本属性
WORDattText=FOREGROUND_RED|FOREGROUND_INTENSITY;//文本属性
//设置阴影
COORDposShadow={x1+1,y1+1},posText={x1,y1};
for(inti=0;i<5;i++)
{
FillConsoleOutputAttribute(hOut,att1,chNum+4,posShadow,NULL);
posShadow.Y++;
}
//填充窗口背景
for(i=0;i<5;i++)
{
FillConsoleOutputAttribute(hOut,att0,chNum+4,posText,NULL);
posText.Y++;
}
//写文本和边框
posText.X=x1+2;
posText.Y=y1+2;
WriteConsoleOutputCharacter(hOut,str,strlen(str),posText,NULL);
SMALL_RECTrc={x1,y1,x2-1,y2-1};
DrawBox(true,rc);
SetConsoleTextAttribute(hOut,bInfo.wAttributes);//恢复原来的属性
}
voidDrawBox(boolbSingle,SMALL_RECTrc)
{
charchBox[6];
if(bSingle)
{
chBox[0]=(char)0xda;//左上角点
chBox[1]=(char)0xbf;//右上角点
chBox[2]=(char)0xc0;//左下角点
chBox[3]=(char)0xd9;//右下角点
chBox[4]=(char)0xc4;//水平
chBox[5]=(char)0xb3;//坚直
}
else
{
chBox[0]=(char)0xc9;//左上角点
chBox[1]=(char)0xbb;//右上角点
chBox[2]=(char)0xc8;//左下角点
chBox[3]=(char)0xbc;//右下角点
chBox[4]=(char)0xcd;//水平
chBox[5]=(char)0xba;//坚直
}
COORDpos={rc.Left,rc.Top};
WriteConsoleOutputCharacter(hOut,&chBox[0],1,pos,NULL);
for(pos.X=rc.Left+1;pos.X<rc.Right;pos.X++)
WriteConsoleOutputCharacter(hOut,&chBox[4],1,pos,NULL);
pos.X=rc.Right;
WriteConsoleOutputCharacter(hOut,&chBox[1],1,pos,NULL);
for(pos.Y=rc.Top+1;pos.Y<rc.Bottom;pos.Y++)
{
pos.X=rc.Left;
WriteConsoleOutputCharacter(hOut,&chBox[5],1,pos,NULL);
pos.X=rc.Right;
WriteConsoleOutputCharacter(hOut,&chBox[5],1,pos,NULL);
}
pos.X=rc.Left;pos.Y=rc.Bottom;
WriteConsoleOutputCharacter(hOut,&chBox[2],1,pos,NULL);
for(pos.X=rc.Left+1;pos.X<rc.Right;pos.X++)
WriteConsoleOutputCharacter(hOut,&chBox[4],1,pos,NULL);
pos.X=rc.Right;
WriteConsoleOutputCharacter(hOut,&chBox[3],1,pos,NULL);
}
I. C语言可以做成图形界面吗
C语言可以做图形界面。
C语言中要做图形见面,首先需要设置为图形模式,确定显卡类型,对屏幕进行初始化等等。相关的函数如下:
1. detectgraph() 显示卡检测函数
2. initgraph() 图形初始化函数
3. getdrivername() 获取图形驱动程序名的指针
4. getgraphmode() 获取图形模式函数
5. getmoderange()获取模式值范围函数
6. getmaxmode()获取最大显示模式函数
7. getmodename()获取显示模式名函数
8. graphdefaults()图形设置复位缺省值函数
9. setgraphmode() 设置图形模式函数
10. restorecrtmode() 恢复文本显示模式函数
11. graphresult() 图形操作结果函数
12. grpaherrormsg() 图形错误信息函数
13. setgraphbufsize()设置图形缓冲区大小函数
14. setactivepage() 设置可输出显示页函数
15. setvisualpage() 设置可见显示页数
16. closegraph()关闭图形模式函数
希望以上回答对你有帮助,谢谢。