怎样用c语言写一个图形界面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用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处理我们自定义的消息处理函数没有处理到的消息
参考技术A c语言编程有窗口程序与控制台程序,窗口的就是windows编程,要用,控制台即dos式的字符界面(字符界面),但若有图形库,也可以写出图形来,tc有图形库,而vc++没有,但为了方便,你可在网上下图形库安装以支持vc++,常见的图形库有ege、easyx等等.......追问加qq 慢慢请教 2469194208 谢了
追答抱歉噢,画图板是要很专业的水平的,我对此只算个门外汉........
参考技术B C语言没有图形界面的相关库,但是C语言可以调用系统API来编写图形界面。在Windows上是调用Win32 SDK来实现图形界面编程的。Linux上可以使用GTK来实现图形界面编程。
对于GTK我不太熟。Win32 SDK也不是几句话就能说清的,我可以给你推荐一本书《Windows程序设计(第5版 珍藏版)》,这本书非常经典,写得也通俗易懂。 参考技术C 图形界面怎么用C语言做呢,直接做一个windows窗体应用不行吗 参考技术D printf语句就可以了
要看画什么图形界面,干什么用追问
就一个画图板 要用windows函数吗
追答#include
#include
#include
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define UP 0x4800
#define DOWN 0x5000
#define COL 0x2c7a/*z改变色彩*/
#define FIG 0x2d78/*x改变图形*/
#define HOLD 0x1e61/*A握笔提笔*/
#define SPACE 0x3920/*移动速度*/
#define ENTER 0x1c0d/*像cad一样输入命令画图,未完成*/
#define ESC 0x011b/*退出*/
#define LOAD 0x266c/*load存档*/
#define CHANG 57.2957795
/*tc2.0编译*//*c语言画图板*//*能画线、圆、弧、斜椭圆*/
void *pen,*cross;
int x=320,y=210,s[5]=1,2,3,4,5,i,fig=1,col=1,com,m,step,key,ch;
char *textstring="Save or not?y/n";
char *fig1="pixel";
char *fig2="line";
char *fig3="circle";
char *fig4="arc";
char *fig5="ellipse";
char *col0="ERASE";
char *col1="BLUE";
char *col2="GREEN";
char *col3="CYAN";
char *col4="RED";
char *col5="MAGENTA";
char *col6="BROWN";
char *col7="LIGHTGRAY";
char *col8="DARKGRAY";
char *col9="LIGHTBLUE";
char *col10="LIGHTGREEN";
char *col11="LIGHTCYAN";
char *col12="LIGHTRED";
char *col13="LIGHTMAGENTA";
char *col14="YELLOW";
char *col15="WHITE";
struct col
int sav;
;
typedef struct dpcol
char *dpcol;
struct dpcol *next1;
*chead,*dc;
typedef struct dpfig
char *dpfig;
struct dpcol *next2;
*fhead,*df;
void assign()
void init()
int gd=VGA,gm=VGAHI;
initgraph(&gd,&gm,"");
cleardevice();
void info()
void help()
void curs()
int points[12]=320,240,330,235,350,215,345,210,325,230,320,240;
/*moveto(320,240);*/
/*setcolor;*/
/*setlinestyle;*/
drawpoly(6,points);
pen=malloc(imagesize(320,210,350,240));
getimage(320,210,350,240,pen);
setlinestyle(0,0,3);
line(10,50,40,50);
line(25,35,25,65);
cross=malloc(imagesize(10,35,40,65));
getimage(10,35,40,65,cross);
cleardevice();
从控制台输入一个英文句子,用c语言写一个程序判断有几个单词
1 #include<stdio.h>
2 #include<vector>
3
4 int main()
5
6
7
8 char a[100]=0;
printf("请输入英文\\n");
//获取一行字符串,默认以enter 键结束
9 gets(a);
10 int count=0;
11 int flag=0;
12 for(int i=0;i<strlen(a);i++)
13
14 if((a[i]!=' ')&(a[i]!='\\0'))
15
16 printf("%c",a[i]);
17 flag=0;
18
19 if(a[i]==' ')
20
21 if(flag==0)
22
23 printf("\\n");
24 count++;
25 flag=1;
26
27
28
29
30
31 printf("\\n");
32 // 单词的个数为空格数加1
33 printf("单词的个数为count=%d\\n",count+1);
34
[root@squidx ~]# ./a.out
fn nihao wohao dajia hao
fn
nihao
wohao
dajia
hao
单词的个数为count=5
参考技术AC语言程序:
#include <stdio.h>#include <string.h>
#define MAX 1000
int main()
char str[MAX];
int i=0, j, c = 0, len;
printf("请输入字符串:");
gets(str);
len = strlen(str);
while(1)
for(; i<len && str[i]==' '; i++);
for(j=i; j<len && str[j]!=' '; j++);
if(j > i)
i = j;
c++;
if(i >= len || j >= len)
break;
printf("单词数量:%d\\n", c);
return 0;
运行测试:
请输入字符串:How do you do!单词数量:4 参考技术B #include <stdio.h>
#include <string.h>
int a=0;
void main()
char a[100];
printf("请输入字符串:");
gets(a);
int i=0;
for(i=0;i<strlen(a);i++)
if (a[i]==' ')
a++;
printf("有单词 %d 个\\n",a+1);
参考技术C include <stdio.h>
int main(void)
int c,state,nw;
state=0;
nw=0;
while((c=getchar())!='\\n')
if(c==' '||c=='\\t')
state=0;
else if(state==0)
state=1;
nw++;
printf("共有%d个单词\\n",nw);
return 0;
以上是关于怎样用c语言写一个图形界面的主要内容,如果未能解决你的问题,请参考以下文章
请问用opencv库开发应用软件,怎么写图形用户界面,如:按钮、复选框、文本框等。
请问用opencv库开发应用软件,怎么写图形用户界面,如:按钮、复选框、文本框等。