热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言怎样制作界面,c语言游戏界面怎样制作

本文目录一览:1、C语言怎么做界面?2、C语言

本文目录一览:


  • 1、C语言怎么做界面?


  • 2、C语言如何做图形界面?


  • 3、怎么用c语言做一个界面


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

C语言怎么做界面?

空窗口:

#include windows.h

/* 所有的窗口输出到这里去 */

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {

switch(Message) {

/* 停止后,告诉主线程停止 */

case WM_DESTROY: {

PostQuitMessage(0);

break;

}

/* 所有其他消息(很多人)都使用默认程序处理 */

default:

return DefWindowProc(hwnd, Message, wParam, lParam);

}

return 0;

}

/* Win32 GUI程序的主要功能:执行从这里开始 */

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

WNDCLASSEX wc; /* 窗口的属性结构 */

HWND hwnd; /* "句柄" 一个窗口的标识符 */

MSG Msg; /* 所有消息的临时位置 */

/* 修改结构和设置的东西 */

memset(wc,0,sizeof(wc));

wc.cbSize

= sizeof(WNDCLASSEX);

wc.lpfnWndProc

= WndProc; /* 将发送消息的地方 */

wc.hInstance

= hInstance;

wc.hCursor

= LoadCursor(NULL, IDC_ARROW);

/* 白色,COLOR_WINDOW是系统定义的颜色值,其数值是5 */

wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);

wc.lpszClassName = "WindowClass";

wc.hIcon

= LoadIcon(NULL, IDI_APPLICATION); /* 载入一个标准图标 */

wc.hIconSm

= LoadIcon(NULL, IDI_APPLICATION); /* 使用名称“A”来作为该项目图标 */

if(!RegisterClassEx(wc)) {

MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);

return 0;

}

hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, /* x */

CW_USEDEFAULT, /* y */

640, /* 宽度 */

480, /* 高度 */

NULL,NULL,hInstance,NULL);

if(hwnd == NULL) {

MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);

return 0;

}

/*

所有的输入处理和发送到窗口过程。

注意,这个块代码流,直到它接收到的东西,

所以回路不会产生不合理的高CPU使用率。

*/

while(GetMessage(Msg, NULL, 0, 0) 0) /* 如果没有收到任何错误…*/

{

TranslateMessage(Msg); /* 如果存在翻译关键码字符*/

DispatchMessage(Msg); /* 发送它到WndProc */

}

return Msg.wParam;

}

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

怎么用c语言做一个界面

用turbo

c是可以做窗口程序的,不过不会是象vb做出来的窗口那样。是dos下面的。

还可以用vc++,这个可以用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处理我们自定义的消息处理函数没有处理到的消息

}


推荐阅读
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了Java中Currency类的getInstance()方法,该方法用于检索给定货币代码的该货币的实例。文章详细解释了方法的语法、参数、返回值和异常,并提供了一个示例程序来说明该方法的工作原理。 ... [详细]
  • 在C#中,使用关键字abstract来定义抽象类和抽象方法。抽象类是一种不能被实例化的类,它只提供部分实现,但可以被其他类继承并创建实例。抽象类可以用于类、方法、属性、索引器和事件。在一个类声明中使用abstract表示该类倾向于作为其他类的基类成员被标识为抽象,或者被包含在一个抽象类中,必须由其派生类实现。本文介绍了C#中抽象类和抽象方法的基础知识,并提供了一个示例代码。 ... [详细]
author-avatar
dfpkgih
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有