您当前的位置:首页 > 互联网教程

c语言如何编写界面程序

发布时间:2025-05-17 04:46:22    发布人:远客网络

c语言如何编写界面程序

一、c语言如何编写界面程序

用C语言编写界面程序要用到以下几种东西

1. C语言的编辑器,例如Microsoft visual C++ 6.0

2. UCGUI源码,包含各种窗体以及控件,直接在主函数调用就好了

#define LENGTHOF(A)(sizeof(A)/sizeof(A[0]))#define FRAME_SIZE LCD_XSIZE*LCD_YSIZE

uint16_t LCD_Frame[FRAME_SIZE];

#define MY_BUFSIZE 1024// Buffer size for console window titles.

HWND hwndFound;// This is what is returned to the caller.

char pszNewWindowTitle[MY_BUFSIZE];

char pszOldWindowTitle[MY_BUFSIZE];

// Contains original GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE); wsprintf(pszNewWindowTitle,"%d/%d", GetTickCount(), GetCurrentProcessId()); SetConsoleTitle(pszNewWindowTitle); Sleep(40); hwndFound=FindWindow(NULL, pszNewWindowTitle); SetConsoleTitle(pszOldWindowTitle); return(hwndFound);

bmiHeader.biSize=sizeof(BITMAPINFOHEADER); bmiHeader.biWidth= LCD_XSIZE; bmiHeader.biHeight=-LCD_YSIZE; bmiHeader.biPlanes= 1; bmiHeader.biBitCount= 16; bmiHeader.biCompression= BI_RGB; bmiHeader.biSizeImage= 0; bmiHeader.biXPelsPerMeter= 0; bmiHeader.biYPelsPerMeter= 0; bmiHeader.biClrUsed= 0; bmiHeader.biClrImportant= 0; SetDIBitsToDevice(hDC,// hDC 0,0,LCD_XSIZE,LCD_YSIZE, 0,0,0,LCD_YSIZE, LCD_Frame,bmiHeader,DIB_RGB_COLORS);// wUsage*/}

void LCD_Repain(){/*StretchDIBits(bufferHDC, 0,0,0-m_nVideoW,0-m_nVideoH, 0,0,m_nVideoW, m_nVideoH, szFrame,BmpInfo,DIB_RGB_COLORS,SRCCOPY);*/ StretchDIBits(hDC, 0,0,LCD_XSIZE,LCD_YSIZE, 0,0,LCD_XSIZE,LCD_YSIZE, LCD_Frame,bmiHeader,DIB_RGB_COLORS,SRCCOPY);

2.移植UCGUI代码到你的工程里,主要是修改画点函数:

#define FRAME_SIZE LCD_XSIZE*LCD_YSIZEextern uint16_t LCD_Frame[FRAME_SIZE];#define GETDATAPTR(xPhys,yPhys)(uint16_t*)((uint32_t)LCD_Frame+ 2*(xPhys+yPhys*LCD_XSIZE))#define SETPIXEL _SetPixel#define XORPIXEL _XorPixel//{*(uint16_t)GETDATAPTR(xPhys,yPhys)= 0XFFFF-*(uint16_t*)GETDATAPTR(xPhys,yPhys);}//extern uint16_t*pFrameBuffer; static void _SetPixel(int x, int y, uint16_t Pixel){*(uint16_t*)GETDATAPTR(x,y)= Pixel;//printf("_SetPixel\r\n");} uint16_t _GetPixel(int x, int y){uint16_t Pixel; Pixel=*GETDATAPTR(x,y);

3.在主函数中调用初始化,在循环中调用刷新函数

4.执行函数后,会在控制台显示你定义的窗口画面

二、用C语言编写窗口界面程序,应该学习什么

1、学习c++程序基础知识学习经典入门。

2、C++程序是一门广泛用于工业软件研发的大型语言。具有很高的复杂性和解决问题的能力。C++不仅在开发上极具价值,同时在学术界也就有很高的价值。有关C++的文章应该可以用浩如烟海来形容了吧。

3、C++的世界级经典书籍也是数不胜数。然而,目前开发语言是如此地繁荣,就连微软也在推出了新的开发语言C#。一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,前段时间看了据说是微软操作系统源代码的东东,其中很多还是C语言。而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。

4、也许Java和C#的狂潮终将迫使C++回归本位—回到它有着根本性优势的开发领域:低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计、通用程序设计以及数值科学计算等。果真如此,我认为这未尝不是一件好事。电力系统软件所要求的高性能和大规模数值计算正是C++所擅长的。就我所接触的南瑞和鲁能,很多涉及到电力系统计算的软件如PAS等,都是用C++来开发的。

5、在电力系统软件开发这块阵地,C++大有用武之地。C++吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软件产品、程序库以及书籍等,数不胜数。在C++之父Bjarne Stroustrup的个人主页上,有一页列出了一些(全部或大部分)使用C++编写的系统、应用程序和库。

三、C语言怎么设计窗口呀

1、你学c#的时候之所以有这些控件,能进行界面编辑是因为你建的是winform程序,在编辑的时候实际上也是有代码控制的。如果你c#建的是控制台程序的话就会与c语言一样了,但是你在应用中加入 using System.Windows.Forms;那么就可以调用winform程序的控件了。

2、一般的话你是为了学习一种语言的话建议学习控制台应用程序。如果用界面的话对你语言学习没有什么好处,反而会让你分心。当你真真学习做一个项目的时候可以用winform来了。反正当你学习到一定程度你就会明白其中的关系了。

3、对于c语言的话我本人只用过控制台,通过代码来创建窗口,也是可以产生你所需要的效果的。

4、你要明白现在你要学的是一门语言,你要懂得语法等知识,而不是费心去拉几个控件,所以好好的学好基础吧。c#的话也在控制台上来联系。你要学的不是开发工具,所以不要把精力浪费在这里,而且还把自己搞得乱七八糟的。

5、至于楼上的,vc是c++的编译工具,只不过可以运行c语言程序而已,楼主用的工具比vc好的多,vc老了,楼主的才是新版,不用理会