例如,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;
}