Desarrollo y programación de UI
Por ejemplo, el propio sistema operativo Windows proporciona una interfaz UI.
Un código de muestra simple es el siguiente
#Contains? ltwindows.h gt
¿RESULTADO? ¿Llamar de vuelta? WndProc(HWND, UINT, WPARAM, LPARAM);
int? ¿WINAPI? WinMain(¿hin instancia? HINSTANCE HINSTANCE? hprevinstance, LPSTR? line, int? cmd)
{
¿Electricidad estática? ¿TCHAR? NombreAplicación[]= TEXTO(" 99 ");
HWND? hwnd
¿MSG? MSG;
¿WNDCLASS? wndclass
clase wnd = CS _ HREDRAW | CS _ VREDRAW;
wndclass.lpfnWndProc = WndProc
clase wnd >
clase wnd . cbwndextra = 0;
clase wnd . h instancia = h instancia;
wndclass.hIcon=LoadIcon(NULL,IDI_Application);
clase wnd . hcursor = cargar cursor(NULL, IDC _ ARROW);
clase wnd = (HBRUSH)GetStockObject(WHITE _ BRUSH);
wndclass .lpszMenuName = NULL
clase wnd . lpsz nombre de clase = AppName;
if (!register class(amp;wndclass))
{
MessageBox(NULL, TEXT("¿Este? ¿Programa? ¿Requisitos? ¿Windows? ¡NT!"), AppName, error MB_icon);
¿Regresar? 0;
}
Hwnd=CreateWindow(AppName, TEXT ("tabla de multiplicar 99"),\
WS_OVERLAPPEDWINDOW,\
CW_USEDEFAULT,\
CW_USEDEFAULT,\
CW_USEDEFAULT,\
CW_USEDEFAULT,\
Vacío,\
Vacío,\
hinstance,\
NULL);
ShowWindow(hwnd, cmd);
Actualizar ventana(hwnd);
while(GetMessage(amp;msg,NULL,0,0))
{
Traducir mensaje (amp msg);
mensaje de envío(amp;MSG);
}
¿Devolver? msg.wParam
}
LRESULTADO? ¿Llamar de vuelta? WndProc(HWND? hwnd, UINT? mensaje, WPARAM? wparam, LPARAM? lparam)
{
HDC? hdc
P
¿INTESTRUCTURA? PD;
¿RECTO? rect
¿Electricidad estática? x, y;
int? I,j;
int? len
TCHAR? buf[50];
¿Métricas de texto? TM;
Cambiar (mensaje)
{
¿Caso? WM_CREATE:
hdc = GetDC(hwnd);
GetTextMetrics(hdc&TM);
x = tm.tmAveCharWidth
y = TM . TM altura TM . tmexternalleading;
ReleaseDC(hwnd, hdc);
//MessageBox(NULL, TEXT("¿Creado? ¡Exitoso!"), TEXT( "Exitoso ") , MB_OK);
//PlaySound(TEXT("hello.wav "), NULL, SND_FILENAME | SND_ASYNC);
¿Regresar? 0;
¿Caso? WM_PAINT:
hdc = comenzar pintura(hwnd y PS);
GetClientRect(hwnd y rect);
//DrawText(hdc, TEXT( "¿Hola? ¡Mundo!"), -1, amprect, DT _ línea única | DT _ CENTER | DT _ VCENTER
//TextOut(hdc, rect.right/2-(strlen(" ¡Hola? Mundo! ")/2)*x, rect.bottom/2-y/2, TEXT("¿Hola? Mundo!"), 12);
for(I = 1; ¡Yo! =10; i)
{
for(j = 1; j!= I 1; j)
{
len =wsprintf(buf, TEXT("dxd=-4d "), j, I, I * j
TextOut(hdc, j*len*x, i*y, buf, len);
}
}
Acabado (hwnd y PS);
¿Volver? 0;
¿Caso? WM_DESTROY:
PostQuitMessage(0);
¿Volver? 0;
}
¿Volver? DefWindowProc(hwnd, message, wparam, lparam);
}Lo anterior es un código de programa en lenguaje C que utiliza una interfaz de ventana para imprimir 99 tablas de multiplicar en Windows.
El mismo lenguaje C también tendrá otras bibliotecas de UI.
Por ejemplo, Gtk es una biblioteca de interfaz de usuario portátil.
Puedes usarlo para programar UI en Linux, Windows, Mac y otros sistemas operativos.
Un código de muestra simple es el siguiente
#Contains? ltGTK/GTK . h gt;
int? main(int? argc, char? **argv)
{
GtkWidget? *Ganar;
¿GtkWidget? *Etiqueta;
int? I,j;
GScadena? * str
GTK _ init( amp; argc amp; argv);
win = GTK _ WINDOW _ new (GTK _ ventana _ nivel superior
GTK_WINDOW_set_position(GTK_WIN(WIN), GTK_WIN_POS_CENTER);
g_signal_connect(G_OBJECT(win), "eliminar-evento", G_CALLBACK(gtk_main_quit), NULL);
str = g_string_new( NULL);
for(I = 1; i? lt=?9; i)
{
for(j = 1; j?!= ?I 1; j)
g_string_append_printf(str, " dxd=-4d ", j, I, I * j
g_string_append(str, "\n");
}
label = GTK_label_new(str- gt;str);
GTK_CONTAINER_add(GTK_container(win), etiqueta);
GTK_widget_show_all(win);
GTK_main() ;
g_string_free(str, TRUE);
¿Volver? 0;
}