如何用c语言作出有图形界面的小程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用c语言作出有图形界面的小程序?相关的知识,希望对你有一定的参考价值。

那需要学VC。确切的说是要学MFC。

MFC编图形化程序也是很麻烦的,难学,繁琐。

其实你可以再学Java或者C#。

Java本身也不适合做图形化应用程序,但是比MFC要简单得多。

C#则是当前做图形化程序最简单高效的了,不需要编程单靠鼠标拖拽就能做出图形界面。特别是C#的WPF图形框架更是把图形化编程简化到了极限。

所以强烈建议学C#。

C#语言综合Java和C++的优点。Java和C++都源自C语言。所以学C#之前最好先学一下C++,C、C++、C#可以说是一脉相承,向下兼容的。

总之,学图形化编程比较好的顺序是:

C(结构化语言,入门)-> C++(面向对象语言,铺垫) -> C# (享受快速图形化开发吧)

忘解释那几个名词了,补上:

集成开发环境:就是IDE,一类开发工具。

你的代码本来可以直接在记事本里写完,然后命令行下调用编译器编译就能执行了。

集成开发环境将代码编辑、代码编译执行、代码调试功能集成在一起(甚至集成更多功能),使开发人员的开发变得更加高效。比如Visual C++ 6.0就是一个集成开发环境,还有Eclipse、CodeBlocks、Visual Studio等都是。

参考技术A 那需要学VC。确切的说是要学MFC。
MFC编图形化程序也是很麻烦的,难学,繁琐。
其实你可以再学Java或者C#。
Java本身也不适合做图形化应用程序,但是比MFC要简单得多。
C#则是当前做图形化程序最简单高效的了,不需要编程单靠鼠标拖拽就能做出图形界面。特别是C#的WPF图形框架更是把图形化编程简化到了极限。
所以强烈建议学C#。
C#语言综合Java和C++的优点。Java和C++都源自C语言。所以学C#之前最好先学一下C++,C、C++、C#可以说是一脉相承,向下兼容的。
总之,学图形化编程比较好的顺序是:
C(结构化语言,入门)->
C++(面向对象语言,铺垫)
->
C#
(享受快速图形化开发吧)
忘解释那几个名词了,补上:
集成开发环境:就是IDE,一类开发工具。
你的代码本来可以直接在记事本里写完,然后命令行下调用编译器编译就能执行了。
集成开发环境将代码编辑、代码编译执行、代码调试功能集成在一起(甚至集成更多功能),使开发人员的开发变得更加高效。比如Visual
C++
6.0就是一个集成开发环境,还有Eclipse、CodeBlocks、Visual
Studio等都是。
图形API:进行图形化编程的应用程序编程接口(application
programming
interface:API)
你的程序通过调用这些接口来直接生成标准的图形控件,比如按钮、文本框之类的,不需要你手动写实现这些控件的方法,只需要调用图形化API的方法就能自动生成。这些API都是将有关图形化的具体实现类封装在类库中向开发者提供,简化图形化开发。MFC就是为C和C++提供的图形化API,确切的说是Windows系统的图形化API。而WinForm和WPF就是为C#提供的图形化API。这些API都是微软提供的。当然Linux等其他系统有自己的图形化API。
GUI:图形用户接口(Graphical
User
Interface)
这个其实就是应用程序界面的意思。命令行下输入命令的方式来进行操作那叫命令行接口,有了应用程序界面后,可以通过鼠标进行操作。这些界面就是GUI了。由于图形界面只是方便用户操作,具体的内部实现还是命令行方式完成的,因此称界面为接口。

如何用C语言编程出可视化界面?

就像QQ那样的界面

//调用api函数创建窗口

//示例:

#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("MyWindows");//定义窗口类名

HWND hwnd;//窗口句柄

MSG msg; //

WNDCLASS wndclass;  //窗口类


wndclass.style = CS_HREDRAW | CS_VREDRAW;//指定窗口类型,各种“类风格”(详见下方↓)可以使用按位或操作符组合起来

wndclass.lpfnWndProc = WndProc;//指定窗口过程(必须是回调函数)

wndclass.cbClsExtra = 0;//预留的额外空间,一般为 0

wndclass.cbWndExtra = 0;//预留的额外空间,一般为 0

wndclass.hInstance = hInstance;//应用程序的实例句柄

wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//为所有基于该窗口类的窗口设定一个图标

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);//为所有基于该窗口类的窗口设定一个鼠标指针

wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//指定窗口背景色

wndclass.lpszMenuName = NULL;//指定窗口菜单

wndclass.lpszClassName = szAppName;//指定窗口类名


if (!RegisterClass(&wndclass))//注册窗口

MessageBox(NULL, TEXT("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR);

return 0;


hwnd = CreateWindow(szAppName,      //创建窗口

TEXT("windows"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

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_PAINT:

hdc = BeginPaint(hwnd, &ps);

GetClientRect(hwnd, &rect);

DrawText(hdc, TEXT("第一个C语言窗口程序!"), -1, &rect,

DT_SINGLELINE | DT_CENTER | DT_VCENTER);

EndPaint(hwnd, &ps);

return 0;


case WM_DESTROY:

PostQuitMessage(0);

return 0;


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

参考技术A c语言是面向过程的
c++,vb,java是面向对象的
现在的图形界面的程序一般都是面向对象的语言写的
因为c++兼容c的语法
可以用vc环境下的mfc库实现图形界面的程序
c语言不适合图形界面的程序,并不是说不能写图形界面的程序,调用api函数这些应该是可以实现的追问

VB是微软的Visual Basic??这个容易编写是吧?

追答

想学编程还是先学好c吧,到后面你就知道多好的一门语言了
但是刚开始的时候一定会觉得非常没用,全是在debug的黑框框中运行程序
vb是容易编写,但是学那个没必要了感觉,学好c,c++,汇编,java,再去学别的语言,一个月就能上手了
qq只是一个界面,里面涉及到好多网络的知识,最简单的模拟qq的就是mfc,然后跟socket套接字实现信息的发送和接收
要是单纯想了解,随便找个视频看看图形界面编程到底是什么就行了,比如c++写个计算器的,百度文库可以搜到,图文教程,,你还是学好c了再去仔细看那个

本回答被提问者采纳
参考技术B 纯C语言C++很难。那得是大神中的大神。你可以借助QT工具。或者window 的VS 或者VC编辑。利用win32Api 或者MFC等追问

那有了windows32 API之后就用不到C++罗?

以上是关于如何用c语言作出有图形界面的小程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何用c语言编写图形操作的软件呢??

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

如何用Dos环境下的C语言编写在Windows操作系统环境下使用的图形用户界面?

学习C语言,在软件测试中如何用?

如何用C语言设计这个界面?尤其是边框

如何用netbeans进行windows图形界面程序开发?