问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么用c语言做一个界面?

发布网友 发布时间:2022-04-23 14:16

我来回答

5个回答

热心网友 时间:2022-05-01 13:28

空窗口:

#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;
}

热心网友 时间:2022-05-01 14:46

C 语言,就像他的名字一样,他就是一门计算机编程语言;
要做界面,需要调用绘图函数,而绘图函数有很多种,Windows 的 GDI 和 GDI+ 或者 Direct2D,Linux 下的 OpenGL,移动设备上的 XNA ,都可以;
MFC 是微软为咱们创建 Windows 窗体程序而设计好的开发包,可以提高开发效率,以面向对象的方式思考和设计程序,学习这个,需要有 Windows API 基础;
至于 API,在 Windows 下面,就是指 Win32 API 了,就是 32 位 Windows 操作系统的应用程序编程接口,是 Windows 系统提供给开发者的底层功能;
这些都不是一两句话可以概括的,需要自己多点去接触,才会有自己的心得;

最后一条比喻不是很恰当,面向对象拆开来,可以是一堆 API,也可以是单纯的一堆 C 语言句子,当然,也可以是一堆嵌入式汇编语句,所以没办法进行比喻;

热心网友 时间:2022-05-01 16:21

通过调用API来创建界面:
#include<windows.h>
int main()
{
MessageBox(NULL,"Hello World!","C图形程序",MB_OK);
return 0;
}
linux下通过调用图形库来创建界面。

热心网友 时间:2022-05-01 18:12

呵呵,楼主和我当初一样的迷惑。
我当初啃C语言的时候,也是想用C语言做界面出来,走了很多冤枉路,这里希望能给楼主一些提示。
如果你想用“纯”C来做界面的话,那么我会很肯定的告诉你,很难。你所有的操作都要调用API,包括每个按钮的位置、大小,框的位置、大小等等都是通过计算得出来的。这样一来开发的效率是可想而知的。
当然,也有专门做界面的,程序用C语言来写。比如:QT。具体的楼主可以去了解了解。
如果你想感受一下C语言的“乐趣”的话,在Win32中写一下程序:
#include <windows.h>
void main()
{
MessageBox(NULL," Hello World!","我的第一个窗口程序",MB_OK);
//这里的MessageBox函数,就是API函数,函数的意思是调用一个信息框
}
界面只是一个和用户交互的窗口,比如说在MFC中,界面和程序之间数据传递的方式就是通过UpDate()这个函数,UpDate(FALSE);是把变量数据传给界面,UpDate(TRUE)是把界面数据传给变量。当然,前提是需要它们之间关联一下。这么一说楼主估计就明白界面的用处了吧。
MFC是用C++开发的,C++和C上还是有很大的差异的。直接入门会有很大的难度。建议楼主可以先看看C++的书。了解下,什么是类,什么是容器,什么是重载,什么是构造,什么是析构,什么是面向对象。这也不是一句话两句话能讲完的。
我给楼主些意见:
一:想玩界面的话,就用QT写,或者先用其它简单语言(VB、或国产易语言。PS:易语言实质上就是C++的封装,不过很多功能都打包了,用起来比MFC简单的多。)。
二:如果你想更深一步做软件,可以选择学习C++,然后学MFC
三:C语言很强大,是其它编程易语言无法超越的(个人观点)。你前面的说C语言学的很好,我觉得你话撩的有点早。(这个观点当你水平从菜鸟上升一两个等级时候你就会明白)
四:多做项目。(PS:自己想做什么软件,就着手做,不要把要求定的太高,比你水平高一点的软件,做项目是上升最快的方法之一)

热心网友 时间:2022-05-01 20:20

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
界面只是一个和用户交互的窗口,比如说在MFC中,界面和程序之间数据传递的方式就是通过UpDate()这个函数,UpDate(FALSE);是把变量数据传给界面,UpDate(TRUE)是把界面数据传给变量。当然,前提是需要它们之间关联一下。这么一说楼主估计就明白界面的用处了吧。
MFC是用C++开发的,C++和C上还是有很大的差异的。直接入门会有很大的难度。建议楼主可以先看看C++的书。了解下,什么是类,什么是容器,什么是重载,什么是构造,什么是析构,什么是面向对象。这也不是一句话两句话能讲完的。
一:想玩界面的话,就用QT写,或者先用其它简单语言(VB、或国产易语言。PS:易语言实质上就是C++的封装,不过很多功能都打包了,用起来比MFC简单的多。)。
二:如果你想更深一步做软件,可以选择学习C++,然后学MFC
三:C语言很强大,是其它编程易语言无法超越的(个人观点)。你前面的说C语言学的很好,我觉得你话撩的有点早。(这个观点当你水平从菜鸟上升一两个等级时候你就会明白)
四:多做项目。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 如何用C语言编写一个窗体应用程序? 番茄酱和鸡能做出什么菜? 用c语言怎么创建一个窗口? 番茄酱炒鸡柳,都需要准备哪些食材呢? 西红柿鸡胸肉的做法有哪些? 番茄酱烧鸡怎么做? 番茄酱鸡腿的做法,番茄酱鸡腿怎么做好吃,番茄 茄红素鸡汤的家常做法? 茄汁鸡肉怎么做好吃? 酱鸡块怎么做好吃,番茄酱鸡块的家常做法 织锦缎是什么成分? 织锦缎和十锦锻一样吗? 丽锦缎是什么面料? 夏天裙子面料是织锦好还是涤纶好? 织锦工艺流程分为哪些 织锦缎和古香缎是什么样的面料?怎样洗涤这类衣物? 织锦面料的衣服穿着舒适吗 织锦面料和提花面料有什么区别 百支锦棉的优点 织锦和锦织是什么面料 菜花番茄炒鸡肉的做法,菜花番茄炒鸡肉怎么做 C语言如何创建窗口 番茄土豆鸡肉的做法 c语言如何设置窗口 用C语言编写windows窗体程序,怎么创建按钮以及怎么添加按钮的触发事件... c语言,如何编写窗口程系。 如何利用C语言编写窗口程序,即有界面的 用C语言怎么创建新窗口(编译器VC6.0)? 怎样使用visual studio 2010以C语言编一个简单的窗口程序 iPhone X, XS, XS max 运营商显示在哪里? C语言怎么写窗口化程序 怎样用C语言编写出窗体程序? 在gcc下怎么用c语言编出个窗口,要尽量简单 男生提分手后多久会想复合? 用C语言编写个带弹出窗口的程序 男友提出分手一个月要求复合,到底应该怎么想? iphonex被运营商锁定怎么办? 男生为什么提出分手后又主动要求复合合?完事又几天不理你 苹果x的网络变ctm怎么调回中国移动 分手后男生想复合,女生应该怎么办