c语言图形界面游标

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

}

c语言怎样编图形界面啊?求高手代码!!

#include graphics.h

#include math.h

#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(80): “);

scanf(“%d”,r);

cleardevice();

setbkcolor(9);

setcolor(4);

outtextxy(80,20,”This program show the Kidney picture.”);

y1=240-r;

for(a=0;a=2*PI;a+=PI/27)

{

x=320+r*cos(a);

y=240+r*sin(a);

r1=sqrt((x-320)*(x-320)+(y-y1)*(y-y1));

circle(x,y,r1);

}

outtextxy(80,460,”Press any key to quit…”);

getch();

closegraph();

}

这是一个例子

绘图要用到头文件 graphics.h

要进行图形界面的初始化:

int gdriver=DETECT,gmode;

initgraph(gdriver,gmode,”c:\\turboc2\\bgi”);

清除屏幕

cleardevice();

设置背景颜色

setbkcolor(9);

设置前景颜色

setcolor(4);

输出图形文字

outtextxy(80,20,”This program show the Kidney picture.”);

画圆

circle(x,y,r1);

最后关闭图形模式

closegraph();

以上程序需要在TC下面运行,VC里面有自己的绘图命令,和这个不同!

用C语言怎么实现图形化界面?

这是最简单的界面程序 : // 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;

}

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()关闭图形模式函数

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月25日 11:46:07
下一篇 2024年3月25日 11:52:48

相关推荐

  • c语言的职业规划,c语言的就业方向

    软件开发个人职业生涯目标规划范文 1、软件开发个人职业生涯目标规划范文(一) 一位哲人说过:“走好每一步,就是你的人生。”,人生之路说长也长,是因为这是你一生所要走的艰难险阻的跋涉;人生之路说短也短,因为你度过的每一天就是你的人生。 2、软件开发个人职业规划范文(一) 人常问:何为成功?要如何去成功?我认为,人活着不应该庸庸碌碌,要有理想,有勇气,有追求梦想…

    2024年5月12日
    6000
  • c语言中数学符号的应用,c语言符号数是什么意思

    C语言中和如何使用? 1、C语言?和:是三目运算符,也叫三元运算符。 2、首先需要定义三个变量a,b,c,两个为相加的数,第三个为相加后得到的和。然后使用scanf()语句接收从键盘输入的两个数,为变量a,b赋值。接着进行a和b的加法运算,将结果赋值给变量c。 3、添加一个cpp文件。包含需要用到的头文件。输入main函数。定义两个变量,分别是:a和sum。…

    2024年5月12日
    3400
  • 厘米换算英尺英寸c语言,c语言英里转化公里

    用C语言编写一个输入身高(cm)输出身高英寸 你是问英制转公制:公式1英尺=12英寸,1英寸=54厘米。定义两个浮点数变量表示英尺和英寸,输入后,套上面公式算即可。 / 100 foot+inch/12 = cm / (100 * 0.3048) = cm / 30.48 因为1foot = 12inch,所以inch / 12 1,所以foot = cm/…

    2024年5月12日
    4100
  • c语言多个集合交集,c语言多个集合交集的区别

    C语言怎么用函数求集合的交集 1、扫描一次集合A,把出现的字母计到key的对应位置里。同理扫描一次集合B。查看key数组,=2的对应字母输出到集合C,C就是所求交集。 2、以前写过一个纯C的, 用的是数组,模拟C++ STL里面的set_intersection,set_union和set_difference的实现。 稍作了修改,添加了些注释,希望能帮到你…

    2024年5月12日
    2800
  • 迷宫求最优解c语言,c语言迷宫问题最短路线程序

    数据结构迷宫问题(c语言) 尝试往左先走一步(x-1,如果x小于0,或者对应位置标识为阻塞)2 1如果成功,用本函数递归调用左走一步的坐标,并记下当前位置到轨迹列表。 最坏情况下:每个点都试探过才走到终点。此时时间复杂度为:(m*n-1)*4,(其中4为4个方向),空间复杂度m*n*2,(其中m*n为存储迷宫图空间,m*n为栈空间);再好情况下:一次试探过就…

    2024年5月12日
    3300
  • 单片机c语言除法,单片机除以0

    51单片机带小数的多字节乘除运算 对于多字节数,估计你不会直接保存成数值而是要保存成字符串了吧,当然如果你保存成数值的话通过连续乘10直到结果为整数的方法计算小数点后的位数,对于小数相乘来说,两个数的小数点位数相加就是结果的小数点位数。 MOV A,#36 MOV B,7FH MUL AB;36 * [7FH]。 M可以了。1000条指令不算多。一条指令平均…

    2024年5月12日
    3900
  • c语言输入的代码大全,c语言输入输出代码

    用c语言编写输入ASCII码的代码。 思路:先定义字符ch,输入字符,在把字符强制转换成整数就是该字符的ASCII码值,即int(ch)。 printf(%d\n,m);输出变量m的十进制ASCII值;printf(%x\n,m);输出变量m的十六进制ASCII值。 用C语言编写程序,然后输出ASCII码可以将字符以整数形式输出即为输出ASCII码,具体编程…

    2024年5月12日
    3500
  • c语言几何的题目,c语言几何的题目怎么做

    …五五数之剩三。七七数之剩二,问物有几何?请问这道题用C语言… 1、if(i%3==2 && i%5==3) break;i += 7; // i += 7 显然要快很多,不过真正好的算法是中国剩余定理 } printf(最小的满足的数是:%d\n, i);} 这样效率也比较高。这里求的 是最小的满足情况的数。 2、解…

    2024年5月12日
    3500
  • c语言游戏小型程序代码,c语言程序小游戏代码300行

    用C语言编写的小游戏代码是什么? 1、参考代码:include stdio.hvoid main(){ double a,b; double L,S; scanf(%lf%lf,&a,&b);//输入宽和高。 L=2*(a+b);//计算周长。 S=a*b;//计算面积。 2、for(i=0;i80;i++)C语言是一门通用计算机编程语言,应…

    2024年5月12日
    4100
  • c语言udp广播,c# udp广播接收和发送

    能否给我一个用纯C编写的UDP发送和接收的程序 1、这对于需要给套接字分配一众所端口的服务器是很有用的。指定范围为1024和65536之间。可任意指定。 在本程序中,对两个套接字的端口号规定为2000和2001,前者对应发送套接字,后者对应接收套接字。 2、Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据…

    2024年5月12日
    3500

发表回复

登录后才能评论



关注微信