當前位置:編程學習大全網 - 編程語言 - c語言圖形用戶界面編程

c語言圖形用戶界面編程

用C語言制作UI界面需要相關的UI庫。

例如,windows操作系統本身提供了UI界面。

壹個簡單的示例代碼如下

#包含?& ltwindows.h & gt

LRESULT?回調?WndProc(HWND,UINT,WPARAM,LPARAM);

int?WINAPI?WinMain(hin instance?HINSTANCE HINSTANCE?hprevinstance,LPSTR?line,int?cmd)

{

靜電?TCHAR?AppName[]= TEXT(" 99 ");

HWND?hwnd

味精?味精;

WNDCLASS?wndclass

wnd class . style = CS _ HREDRAW | CS _ VREDRAW;

wndclass.lpfnWndProc = WndProc

wnd class . cbclsextra = 0;

wnd class . cbwndextra = 0;

wnd class . h instance = h instance;

wndclass.hIcon=LoadIcon(NULL,IDI _應用);

wnd class . hcursor = load cursor(NULL,IDC _ ARROW);

wnd class . HBR background =(HBRUSH)GetStockObject(WHITE _ BRUSH);

wndclass.lpszMenuName = NULL

wnd class . lpsz class name = AppName;

如果(!register class(& amp;wndclass))

{

MessageBox(NULL,TEXT("This?程序?要求?Windows?NT!”)、AppName、MB _ icon error);

回歸?0;

}

Hwnd=CreateWindow(AppName,TEXT ("99乘法表"),\

WS_OVERLAPPEDWINDOW,\

CW_USEDEFAULT,\

CW_USEDEFAULT,\

CW_USEDEFAULT,\

CW_USEDEFAULT,\

空,\

空,\

hinstance,\

NULL);

ShowWindow(hwnd,cmd);

更新窗口(hwnd);

while(GetMessage(& amp;msg,NULL,0,0))

{

翻譯消息(& amp味精);

dispatch message(amp;味精);

}

回歸?msg.wParam

}

LRESULT?回調?WndProc(HWND?hwnd,UINT?消息,WPARAM?wparam,LPARAM?lparam)

{

HDC?hdc

PAINTSTRUCT?PS;

RECT?rect

靜電?x,y;

int?I,j;

int?len

TCHAR?buf[50];

文本度量?TM;

開關(消息)

{

案子?WM_CREATE:

hdc = GetDC(hwnd);

GetTextMetrics(hdc & amp;TM);

x = tm.tmAveCharWidth

y = TM . TM height+TM . tmexternalleading;

ReleaseDC(hwnd,hdc);

//MessageBox(NULL,TEXT("Create?成功了!”),TEXT("Successed "),MB _ OK);

//PlaySound(TEXT("hello.wav "),NULL,SND _ FILENAME | SND _ ASYNC);

回歸?0;

案子?WM_PAINT:

hdc = begin paint(hwnd & amp;PS);

GetClientRect(hwnd & amp;rect);

//DrawText(hdc,TEXT("Hello?世界!”),-1,& amprect,DT _ single line | DT _ CENTER | DT _ VCENTER);

//TextOut(hdc,rect.right/2-(strlen("Hello?世界!”)/2)*x,rect.bottom/2-y/2,TEXT("Hello?世界!”),12);

for(I = 1;我!=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);

}

}

面漆(hwnd & amp;PS);

回歸?0;

案子?WM_DESTROY:

PostQuitMessage(0);

回歸?0;

}

回歸?DefWindowProc(hwnd,message,wparam,lparam);

}以上是壹個在windows下用窗口界面打印99乘法口訣表的C語言程序代碼。

同樣的C語言也會有其他的UI庫。

比如Gtk就是壹個可移植的UI庫。

妳可以用它在Linux,windows包括mac等操作系統上做ui編程。

壹個簡單的示例代碼如下

#包含?& ltGTK/GTK . h & gt;

int?main(int?argc,char?**argv)

{

GtkWidget?*贏;

GtkWidget?*標簽;

int?I,j;

GString?* str

GTK _ init(& amp;argc & amp;argv);

win = GTK _ WINDOW _ new(GTK _窗口_頂層);

GTK _ WINDOW _ set _ position(GTK _ WIN(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;我?& lt=?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-& gt;str);

GTK _ CONTAINER _ add(GTK _容器(win),標簽);

GTK _ widget _ show _ all(win);

GTK _ main();

g_string_free(str,TRUE);

回歸?0;

}

  • 上一篇:真心想學編程,望給點好建議,謝謝!
  • 下一篇:想在銀行上班要考什麽證
  • copyright 2024編程學習大全網