怎样用c语言写一个图形界面

作者&投稿:毅逸 (若有异议请与网页底部的电邮联系)
c语言如何给自己写的程序加上图形界面~

标题、背景和前景颜色、窗口大小等等这些可以用API函数实现
#include //加入头文件就可调用API函数
int main()
{
HWND hWnd=GetForegroundWindow();
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
SetWindowText(hWnd,"测试");//标题
SetConsoleTextAttribute(handle,FOREGROUND_GREEN|BACKGROUND_BLUE);//前景、背景颜色
return 0;
}
VC6.0 能够在 XP 下很好的运行,无需进行额外的设置,但在 Win7、Win8 和 Win10 下,安装完成后还要修改兼容模式才可以。解决方法如下:
一、对于Win7和Win10,需要将VC6.0的兼容模式修改为 Windows XP SP3:
1、在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”。

2、在弹出的对话框中,将兼容模式修改为Windows XP SP3 或 SP2,如下图所示。

二、相比Win7和Win10,Win8稍微麻烦一些,要先将 MSDEV.EXE 重命名为 MSDEV3.EXE,再按照上面的步骤设置兼容模式。
1、找到MSDEV.EXE所在,MSDEV.EXE是 VC6.0 的主程序,位于 VC6.0 的安装目录下,可以在属性面板中快速找到 MSDEV.EXE。

2、将MSDEV.EXE重命名为MSDEV3.EXE。

3、在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”。

4、在弹出的对话框中,将兼容模式修改为Windows XP SP3 或 SP2,如下图所示。

这是最简单的界面程序 : // c++.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "c++.h"
#define MAX_LOADSTRING 100
// 全局变量:
HINSTANCE hInst;// 当前实例
TCHAR szTitle[MAX_LOADSTRING];// 标题栏文本
TCHAR szWindowClass[MAX_LOADSTRING];// 主窗口类名
// 此代码模块中包含的函数的前向声明:
ATOMMyRegisterClass(HINSTANCE hInstance);
BOOLInitInstance(HINSTANCE, int);
LRESULT CALLBACKWndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACKAbout(HWND, UINT, WPARAM, LPARAM);
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: 在此放置代码。
MSG msg;
HACCEL hAccelTable;
// 初始化全局字符串
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_C, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// 执行应用程序初始化:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
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()
//
// 目的: 注册窗口类。
//
// 注释:
//
// 仅当希望
// 此代码与添加到 Windows 95 中的“RegisterClassEx”
// 函数之前的 Win32 系统兼容时,才需要此函数及其用法。调用此函数十分重要,
// 这样应用程序就可以获得关联的
// “格式正确的”小图标。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
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));
return RegisterClassEx(&wcex);
}
//
// 函数: InitInstance(HINSTANCE, int)
//
// 目的: 保存实例句柄并创建主窗口
//
// 注释:
//
// 在此函数中,我们在全局变量中保存实例句柄并
// 创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
hInst = hInstance; // 将实例句柄存储在全局变量中
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//
// 函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// 目的: 处理主窗口的消息。
//
// WM_COMMAND- 处理应用程序菜单
// WM_PAINT- 绘制主窗口
// WM_DESTROY- 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// “关于”框的消息处理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}

代码

#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处理我们自定义的消息处理函数没有处理到的消息

}



c语言编程有窗口程序与控制台程序,窗口的就是windows编程,要用,控制台即dos式的字符界面(字符界面),但若有图形库,也可以写出图形来,tc有图形库,而vc++没有,但为了方便,你可在网上下图形库安装以支持vc++,常见的图形库有ege、easyx等等.......

C语言没有图形界面的相关库,但是C语言可以调用系统API来编写图形界面。
在Windows上是调用Win32 SDK来实现图形界面编程的。Linux上可以使用GTK来实现图形界面编程。
对于GTK我不太熟。Win32 SDK也不是几句话就能说清的,我可以给你推荐一本书《Windows程序设计(第5版 珍藏版)》,这本书非常经典,写得也通俗易懂。

图形界面怎么用C语言做呢,直接做一个windows窗体应用不行吗

printf语句就可以了
要看画什么图形界面,干什么用


怎样用c语言编写一个输出“苹果图案”的程序
char tab[] = {\/\/储存用于输出图形的数组 0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,1,0,0,1,0,0,};void main(){ for (t = 0; t < 49; t++){ if (t % 8 == 0)\/\/上面数组每8个一行,...

求用C语言和数据结构中的无向图存储结构编一个校园导游图完全的程序代...
求用C语言和数据结构中的无向图存储结构编一个校园导游图完全的程序代码? 要完全用C语言编程的,各位编程高手帮忙啊!!非常感谢... 要完全用C语言编程的,各位编程高手帮忙啊!!非常感谢... 展开  我来答 1个回答 #热议# 网文质量是不是下降了?哈哈哈好的哈哈哈哈哈哈哈哈哈哈哈哈好哈哈 2010-01-03 ...

如何用C语言程序输出以下图形 \/\/ * *** *** *** *** *** *
scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<(n-1-i);j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\\n");}} 知识延展:掌握c语言的写法之后,就找一些简单的题目,如课本的课后练习都是简单的,自己先不要看答案,自己想一下,应该怎么写,最好边想边在...

使用c语言编程输出以下图形该怎么写呀?
复制粘贴即可用!!!include<stdio.h> int main(){ int width,height; \/\/宽度&高度 int i,j,k; \/\/三个循环变量,设一个也可以,不过这样好理解 printf("请输入矩形的宽度:");scanf("%d",&width);printf("请输入矩形的高度:");scanf("%d",&height);\/\/输出第一行 for(i=0;i<widt...

用c语言绘制机械图
include <string.h> include<stdlib.h> float L1,L2,L3,H1,H2,H3,W1,R1,mmaxx,mmaxy;\/*长度的为L1-160,其次为L2-60,定位尺寸L3-50,高度最长为H1-90,其次为H2-50,宽度为W1-110,圆的半径为的R1-50*\/ void Enter_Data() \/* 输入长度L1,L2,L3,高度H1,H2,宽度W1,圆的半径R1*\/ ...

怎样用c语言写一个图形界面
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_VR...

用c语言编写一个程序,输出下列雪花图案!
include "stdio.h"#define ROW 14#define COL 12int main(){char ch[ROW][COL];\/\/多定义一行一列,0行和0列不用int i,j;for(i=0;i<ROW;i++)for(j=0;j<COL;j++)ch[i][j]=' ';\/\/初始化为空格ch[1][4]=ch[13][4]='*';for(i=2;i<=8;i+=2){ch[3][i]='*';...

c语言 输入一个字符串,输出菱形样式图案,每行包含各子串。
include <stdio.h> include <string.h> include <stdlib.h> int main(){ int n,i;char s[100];scanf("%s",s);n=strlen(s);for(i=0;i<n;++i)s[n+i]=s[n-i-1];s[n+i]='\\0';for(i=-n+1;i<n;++i)printf("%*.*s\\n",(n-abs(i))*2+abs(i),(n-abs(i))*2...

请用C语言编程:输入一个正整数,各输出n行的正(倒)三角形宝塔图案...
正三角形:第几行就是几颗星 倒三角形:第几行就是n-几颗星 正宝塔:第几行就是几*2-1颗星,前面加n-几个空格 用i循环控制行数,循环中用i值计算具体输出几个空格和星号 include<stdio.h>#define KG (n-i)#define XH (i*2+1)void main() { int i,j,n; scanf("%d",&n); ...

用c语言输出如下图形
include<stdio.h> define N 5 void main(){int i,j;for(i=1;i<=N;i++){for(j=0;j<=N-i;j++){printf("%4c",'*');} printf("\\n");} }这个你可以根据需要更改N的值,从而可以得到不同层数的图形。

保山市18275952562: c语言怎么编出图形界面? -
圣扶穿琥: windows平台下,含入windows.h,就可以编写图形界面的程序了.这东西跟面向过程还是面向对象没半毛钱关系.并且C++写界面一点都不麻烦,它也有很多类库可以让你选择,如VCL,MFC,还有qt之类的跨平台库.初学者很想写windows图形界面的程序,我推荐C++ Builder,虽然现在它的发展不太明朗,但写起图形界面来,还是相当容易的,跟Visual Basic一样拖拖控件就好了.它跟Delphi用的是一个类库VCL.

保山市18275952562: 怎么用C语言写图形界面?? -
圣扶穿琥: 不知你所指百的图形界面是窗口程序还是画图,如果是要窗口程序,用sdk或winapi编写.如果是要画图形,在网上搜度索“C语言 graphics“,找到问相应资源下载,然后把其中的graphics.h放到vc目录下的include文件夹里,graphics.lib放到lib文件夹里,这就算配置成功了.然后在程序里答如果需要用到图形库函数,就在开头#include<graphics.h>就ok.至于里内面的图形函数你可以查看graphics.h,里面有函数声明及其使用方法容,或者直接百度graphics.h也行.

保山市18275952562: C语言如何做图形界面 -
圣扶穿琥: 如果你用的是tc那么就可以做一些图形的编辑,用到的库文件为 要是mfc是在vc中,也就是说可以更方便一点哦,直接拖各种控件就可以实现,代码建议参见msdn.很全很典型 用tc一样可以进行可视化编程,并不是很困难,都是库函数,也就是说你只要算好坐标,调用库函数就可以

保山市18275952562: C语言图形界面怎么做出来 -
圣扶穿琥: 这是最简单的界面程序 : // c++.cpp : 定义应用程序的入口点.//#include "stdafx.h"#include "c++.h"#define MAX_LOADSTRING 100// 全局变量:HINSTANCE hInst; // 当前实例 TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本 ...

保山市18275952562: c语言怎样编图形界面啊?求高手代码!! -
圣扶穿琥: #include #define PI 3.1415926 void main() { double a; int x,y,y1,r,r1; int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,"c:\\turboc2\\bgi"); printf("Please input Radus( scanf("%d",&r); cleardevice(); setbkcolor(9); setcolor(4); outtextxy(80,...

保山市18275952562: c语言 怎么做图形界面的程序 -
圣扶穿琥: TC里面提供的图形方面的函数库,在一定程度上丰富了C语言程序的,但是这些东西都很初级,且功能非常有限.如果想在Windows平台用C做好程序的窗口,推荐学习Windows程序设计,和C语言差不多,也比较容易掌握

保山市18275952562: 如何使用C语言编辑用户图形界面. -
圣扶穿琥: Windows平台大致以下一些方案: ①直接调用Win32 API. ②使用MFC,这个需要C++基础. ③使用GTK+,这个是纯C语言,但要用好需要理解里面的面向对象思想. 等等建议选择①方案,市面上关于Win32 API的书也比较丰富,通过编程实践可以掌握Windows平台下编程的基本思想和方法.

保山市18275952562: 用c语言怎样做图形操作界面?详细点,最好有代码 -
圣扶穿琥: /* 以下程序在Visual C++ 6.0测试通过,能够出现一个正规的Windows窗口 */#pragma comment(linker,"/SUBSYSTEM:Windows /ENTRY:mainCRTStartup")#include <windows.h>/* 使类名成为全局变量 */ char szClassName[ ] = "...

保山市18275952562: C语言写的程序怎么弄图形界面 -
圣扶穿琥: 你可以学习以下Win32 SDK,也就是windows编程,windows上图形界面最基础的东西,学了这个对以后学习mfc或者winform都很有帮助.推荐你一本书《Windows程序设计(第5版 珍藏版)》,很经典的一本书.

保山市18275952562: 用C语言怎么实现图形化界面? -
圣扶穿琥: C不能实现图形化,要这样的话就C++

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网