linux下ui c语言编程,编写的C语言程序,怎么样制作一个UI界面?

c语言制作UI界面需要相关的UI库

如windows操作系统本身就提供了UI的接口

一个简单的示例代码如下

#include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR line,int cmd){ static TCHAR AppName[]=TEXT("99"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style=CS_HREDRAW|CS_VREDRAW; wndclass.lpfnWndProc=WndProc; wndclass.cbClsExtra=0; wndclass.cbWndExtra=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=AppName; if(!RegisterClass(&wndclass)) { MessageBox(NULL,TEXT("This program requires Windows NT!"),AppName,MB_ICONERROR); return 0; } hwnd=CreateWindow(AppName,TEXT("九九乘法口诀表"),\ WS_OVERLAPPEDWINDOW,\ CW_USEDEFAULT,\ CW_USEDEFAULT,\ CW_USEDEFAULT,\ CW_USEDEFAULT,\ NULL,\ NULL,\ hinstance,\ NULL); ShowWindow(hwnd,cmd); 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; static x,y; int i,j; int len; TCHAR buf[50]; TEXTMETRIC tm; switch(message) { case WM_CREATE: hdc=GetDC(hwnd); GetTextMetrics(hdc,&tm); x=tm.tmAveCharWidth; y=tm.tmHeight+tm.tmExternalLeading; ReleaseDC(hwnd,hdc); //MessageBox(NULL,TEXT("Create Successed!"),TEXT("Successed"),MB_OK); //PlaySound(TEXT("hello.wav"),NULL,SND_FILENAME|SND_ASYNC); return 0; case WM_PAINT: hdc=BeginPaint(hwnd,&ps); GetClientRect(hwnd,&rect); //DrawText(hdc,TEXT("Hello World!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER); //TextOut(hdc,rect.right/2-(strlen("Hello World!")/2)*x,rect.bottom/2-y/2,TEXT("Hello World!"),12); for(i=1;i!=10;++i) { for(j=1;j!=i+1;++j) { len=wsprintf(buf,TEXT("%dx%d=%-4d"),j,i,i*j); TextOut(hdc,j*len*x,i*y,buf,len); } } EndPaint(hwnd,&ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd,message,wparam,lparam);}上面是一个打印windows下拥有窗口界面的九九乘法口诀表的c语言程序代码

同样的c语言也会有其它的UI库

比如Gtk,Gtk是可移植的UI库

可以使用它在Linux、windows包括mac等等操作系统上做ui程序设计

一个简单的示例代码如下

#include int main(int argc,char **argv){ GtkWidget *win; GtkWidget *label; int i,j; GString *str; gtk_init(&argc,&argv); win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(win),GTK_WIN_POS_CENTER); g_signal_connect(G_OBJECT(win),"delete-event",G_CALLBACK(gtk_main_quit),NULL); str=g_string_new(NULL); for(i=1;i <= 9;++i) { for(j=1;j != i+1;++j) g_string_append_printf(str,"%dx%d=%-4d",j,i,i*j); g_string_append(str,"\n"); } label=gtk_label_new(str->str); gtk_container_add(GTK_CONTAINER(win),label); gtk_widget_show_all(win); gtk_main(); g_string_free(str,TRUE); return 0;}

取消

评论

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值