當前位置:首頁 » 編程語言 » c語言簡單界面

c語言簡單界面

發布時間: 2022-08-29 06:00:41

c語言圖形界面怎麼做出來

這是最簡單的界面程序://c++.cpp:定義應用程序的入口點。

//

#include"stdafx.h"

#include"c++.h"

#defineMAX_LOADSTRING100

//全局變數:

HINSTANCEhInst; //當前實例

TCHARszTitle[MAX_LOADSTRING]; //標題欄文本

TCHARszWindowClass[MAX_LOADSTRING]; //主窗口類名

//此代碼模塊中包含的函數的前向聲明:

ATOM MyRegisterClass(HINSTANCEhInstance);

BOOL InitInstance(HINSTANCE,int);

LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

INT_PTRCALLBACK About(HWND,UINT,WPARAM,LPARAM);

intAPIENTRY_tWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPTSTRlpCmdLine,

intnCmdShow)

{

UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

//TODO:在此放置代碼。

MSGmsg;

HACCELhAccelTable;

//初始化全局字元串

LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);

LoadString(hInstance,IDC_C,szWindowClass,MAX_LOADSTRING);

MyRegisterClass(hInstance);

//執行應用程序初始化:

if(!InitInstance(hInstance,nCmdShow))

{

returnFALSE;

}

hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_C));

//主消息循環:

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

{

if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

return(int)msg.wParam;

}

//

//函數:MyRegisterClass()

//

//目的:注冊窗口類。

//

//注釋:

//

//僅當希望

//此代碼與添加到Windows95中的「RegisterClassEx」

//函數之前的Win32系統兼容時,才需要此函數及其用法。調用此函數十分重要,

//這樣應用程序就可以獲得關聯的

//「格式正確的」小圖標。

//

ATOMMyRegisterClass(HINSTANCEhInstance)

{

WNDCLASSEXwcex;

wcex.cbSize=sizeof(WNDCLASSEX);

wcex.style =CS_HREDRAW|CS_VREDRAW;

wcex.lpfnWndProc =WndProc;

wcex.cbClsExtra =0;

wcex.cbWndExtra =0;

wcex.hInstance =hInstance;

wcex.hIcon =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_C));

wcex.hCursor =LoadCursor(NULL,IDC_ARROW);

wcex.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);

wcex.lpszMenuName =MAKEINTRESOURCE(IDC_C);

wcex.lpszClassName =szWindowClass;

wcex.hIconSm =LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));

returnRegisterClassEx(&wcex);

}

//

//函數:InitInstance(HINSTANCE,int)

//

//目的:保存實例句柄並創建主窗口

//

//注釋:

//

//在此函數中,我們在全局變數中保存實例句柄並

//創建和顯示主程序窗口。

//

BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)

{

HWNDhWnd;

hInst=hInstance;//將實例句柄存儲在全局變數中

hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);

if(!hWnd)

{

returnFALSE;

}

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

returnTRUE;

}

//

//函數:WndProc(HWND,UINT,WPARAM,LPARAM)

//

//目的:處理主窗口的消息。

//

//WM_COMMAND -處理應用程序菜單

//WM_PAINT -繪制主窗口

//WM_DESTROY -發送退出消息並返回

//

//

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

intwmId,wmEvent;

PAINTSTRUCTps;

HDChdc;

switch(message)

{

caseWM_COMMAND:

wmId=LOWORD(wParam);

wmEvent=HIWORD(wParam);

//分析菜單選擇:

switch(wmId)

{

caseIDM_ABOUT:

DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);

break;

caseIDM_EXIT:

DestroyWindow(hWnd);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

break;

caseWM_PAINT:

hdc=BeginPaint(hWnd,&ps);

//TODO:在此添加任意繪圖代碼...

EndPaint(hWnd,&ps);

break;

caseWM_DESTROY:

PostQuitMessage(0);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

return0;

}

//「關於」框的消息處理程序。

INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)

{

UNREFERENCED_PARAMETER(lParam);

switch(message)

{

caseWM_INITDIALOG:

return(INT_PTR)TRUE;

caseWM_COMMAND:

if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)

{

EndDialog(hDlg,LOWORD(wParam));

return(INT_PTR)TRUE;

}

break;

}

return(INT_PTR)FALSE;

}

Ⅱ 怎麼用c語言做一個界面

通過調用API來創建界面:
#include<windows.h>
int
main()
{
MessageBox(NULL,"Hello
World!","C圖形程序",MB_OK);
return
0;
}
linux下通過調用圖形庫來創建界面。

Ⅲ C語言怎麼做界面

空窗口:

#include<windows.h>
/*所有的窗口輸出到這里去*/
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){
switch(Message){

/*停止後,告訴主線程停止*/
caseWM_DESTROY:{
PostQuitMessage(0);
break;
}

/*所有其他消息(很多人)都使用默認程序處理*/
default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}
/*Win32GUI程序的主要功能:執行從這里開始*/
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc;/*窗口的屬性結構*/
HWNDhwnd;/*"句柄"一個窗口的標識符*/
MSGMsg;/*所有消息的臨時位置*/

/*修改結構和設置的東西*/
memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;/*將發送消息的地方*/
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

/*白色,COLOR_WINDOW是系統定義的顏色值,其數值是5*/
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);/*載入一個標准圖標*/
wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);/*使用名稱「A」來作為該項目圖標*/

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,/*x*/
CW_USEDEFAULT,/*y*/
640,/*寬度*/
480,/*高度*/
NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}
/*
所有的輸入處理和發送到窗口過程。
注意,這個塊代碼流,直到它接收到的東西,
所以迴路不會產生不合理的高CPU使用率。
*/
while(GetMessage(&Msg,NULL,0,0)>0)/*如果沒有收到任何錯誤…*/
{
TranslateMessage(&Msg);/*如果存在翻譯關鍵碼字元*/
DispatchMessage(&Msg);/*發送它到WndProc*/
}
returnMsg.wParam;
}

Ⅳ C語言如何設計簡單的界面

這個是這樣的
1.使用C調用window
API來畫,其實C++也是這樣作的
2.使用C的圖型庫,這樣的程序如果你是成手,也會作出好看的GUI,但是比1要難一些
3.使用QT等第三方庫

Ⅳ C語言做一個簡單的聊天工具界面

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//定義用戶名最大長度
#define P 20
//定義密碼最大長度
#define Q 20
//定義用戶最大數量
#define N 100

//定義用戶屬性的結構體
struct user
{
char user_name[P]; //用戶名
char user_code[Q]; //密碼
int friend_num; //好友數量
int user_friend[N]; //好友名單
};

void main()
{
int p = 0; //操作步驟
int n = 0; //用戶數量
int i = 0; //過程操作數
int j = 0; //過程操作數
int log_id; //合格登陸號碼
char log_name[P]; //用戶名臨時存儲
char log_code[Q]; //密碼臨時存儲
user my_user[N]; //定義用戶
while(1)
{
switch(p)
{
case 0: //注冊登陸選擇界面
printf("請選擇功能:\n");
printf("1.登陸\n");
printf("2.注冊\n");
scanf("%d",&i); //過程數i記錄接收數據
if(i ==1 || i == 2)
{
p = i;
}
else
{
printf("輸入錯誤!\n");
p = 0;
}
i = 0; //過程數i清零
break;
case 1: //登陸界面
printf("請輸入用戶名:\n");
scanf("%s", &log_name);
printf("請輸入密碼:\n");
scanf("%s", &log_code);
for(i=0;i<n;i++) //驗證登陸用戶,過程數i作為循環變數
{
if(strcmp(my_user[i].user_name, log_name) == 0) //驗證用戶名
{
if(strcmp(my_user[i].user_code, log_code) == 0) //驗證密碼
{
printf("登陸成功!\n");
log_id = i; //記錄合格登陸號碼
p = 3;
j = 1; //過程數j作為操作步驟變化標識
}
else
{
printf("密碼錯誤!\n");
p = 1;
j = 1;
}
}
}
i = 0; //過程數i清零
j = 0; //過程數j清零
break;
case 2: //注冊界面
printf("請輸入用戶名:\n");
scanf("%s", &log_name);
printf("請輸入密碼:\n");
scanf("%s", &log_code);
strcpy(my_user[n].user_name, log_name); //保存用戶名
strcpy(my_user[n].user_code, log_code); //保存密碼
n++; //記錄注冊用戶數
printf("注冊成功!\n");
p = 0;
break;
case 3: //用戶界面
printf("當前登陸用戶:%s\n", my_user[log_id].user_name);
printf("請選擇其他操作:\n");
printf("1.顯示好友名單\n");
printf("2.增加好友\n");
printf("3.刪除好友\n");
printf("4.好友分組\n");
printf("5.自選功能\n");
printf("6.登出\n");
scanf("%d",&i); //過程數i記錄接收數據
if(i >=1 && i <= 6)
{
p = i+3;
}
else
{
printf("輸入錯誤!\n");
p = 3;
}
i = 0; //過程數i清零
break;
case 4: //顯示好友名單
printf("好友名單:\n");
for(i=0;i<my_user[log_id].friend_num;i++)
{
j = my_user[log_id].user_friend[i]; //過程數j記錄用戶好友號碼
printf("%s\n", my_user[j].user_name);
}

p = 3;
i = 0;
j = 0;
break;
case 5: //增加好友,未實現
p = 3;
break;
case 6: //刪除好友,未實現
p = 3;
break;
case 7: //好友分組,未實現
p = 3;
break;
case 8: //自選功能,未實現
p = 3;
break;
case 9: //登出
for(i=0;i<20;i++)
{
log_name[i] = 0; //清除用戶名臨時存儲
log_code[i] = 0; //清除密碼臨時存儲
}
p = 0; //返回初始頁面
i = 0; //過程數i清零
break;
default:
p = 0;
break;
}
}
}

Ⅵ 用C語言怎麼做簡單的界面,編譯器的VC6.0,不需要好看的,就是不用在dos實現,可以在界面上實現功能就可以

用api制圖函數畫吧,或者做一張點陣圖底圖(在上面畫下按鈕、編輯框什麼的),然後用C畫點陣圖、獲取滑鼠位置,計算按鈕的點陣圖位置,模擬點擊處理等。
比較復雜的。

Ⅶ 怎麼用c語言做一個界面

空窗口:

#include<windows.h>
/*所有的窗口輸出到這里去*/
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){
switch(Message){

/*停止後,告訴主線程停止*/
caseWM_DESTROY:{
PostQuitMessage(0);
break;
}

/*所有其他消息都使用默認程序處理*/
default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}
/*Win32GUI程序的主要功能:從這里開始執行*/
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc;/*窗口的屬性結構*/
HWNDhwnd;/*"句柄"一個窗口的標識符*/
MSGMsg;/*所有消息的臨時位置*/

/*修改結構和設置的東西*/
memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;/*發送消息的地方*/
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

/*白色,COLOR_WINDOW是系統定義的顏色值,其數值是5*/
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);/*載入一個標准圖標*/
wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);/*使用名稱「A」來作為該項目圖標*/

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,/*x*/
CW_USEDEFAULT,/*y*/
640,/*寬度*/
480,/*高度*/
NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}
/*
所有的輸入處理和發送到窗口過程。
注意,這個塊代碼流,直到它接收到的東西,
所以迴路不會產生不合理的高CPU使用率。
*/
while(GetMessage(&Msg,NULL,0,0)>0)/*如果沒有收到任何錯誤…*/
{
TranslateMessage(&Msg);/*如果存在翻譯關鍵碼字元*/
DispatchMessage(&Msg);/*發送它到WndProc*/
}
returnMsg.wParam;
}

Ⅷ 編寫的C語言程序,怎樣製作一個UI界面

c語言製作UI界面需要相關的UI庫

如windows操作系統本身就提供了UI的介面

一個簡單的示例代碼如下

#include<windows.h>

LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);

intWINAPIWinMain(HINSTANCEhinstance,HINSTANCEhprevinstance,LPSTRline,intcmd)
{
staticTCHARAppName[]=TEXT("99");
HWNDhwnd;
MSGmsg;
WNDCLASSwndclass;

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("ThisprogramrequiresWindowsNT!"),AppName,MB_ICONERROR);
return0;
}

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);
}

returnmsg.wParam;
}

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwparam,LPARAMlparam)
{
HDChdc;
PAINTSTRUCTps;
RECTrect;
staticx,y;
inti,j;
intlen;
TCHARbuf[50];
TEXTMETRICtm;

switch(message)
{
caseWM_CREATE:
hdc=GetDC(hwnd);
GetTextMetrics(hdc,&tm);
x=tm.tmAveCharWidth;
y=tm.tmHeight+tm.tmExternalLeading;
ReleaseDC(hwnd,hdc);
//MessageBox(NULL,TEXT("CreateSuccessed!"),TEXT("Successed"),MB_OK);
//PlaySound(TEXT("hello.wav"),NULL,SND_FILENAME|SND_ASYNC);
return0;

caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
//DrawText(hdc,TEXT("HelloWorld!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
//TextOut(hdc,rect.right/2-(strlen("HelloWorld!")/2)*x,rect.bottom/2-y/2,TEXT("HelloWorld!"),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);
return0;

caseWM_DESTROY:
PostQuitMessage(0);
return0;
}

returnDefWindowProc(hwnd,message,wparam,lparam);
}

上面是一個列印windows下擁有窗口界面的九九乘法口訣表的c語言程序代碼


同樣的c語言也會有其它的UI庫

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

可以使用它在Linux、windows包括mac等等操作系統上做ui程序設計

一個簡單的示例代碼如下

#include<gtk/gtk.h>

intmain(intargc,char**argv)
{
GtkWidget*win;
GtkWidget*label;
inti,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," ");
}

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);
return0;
}
熱點內容
python調用外部程序 發布:2025-01-16 20:14:09 瀏覽:396
緩解壓力英語作文 發布:2025-01-16 20:13:31 瀏覽:64
javaname 發布:2025-01-16 20:13:15 瀏覽:21
用戶訪問表空間 發布:2025-01-16 20:07:07 瀏覽:943
java代碼自動編譯 發布:2025-01-16 19:58:14 瀏覽:313
編程很困難 發布:2025-01-16 19:58:09 瀏覽:673
gg登錄源碼 發布:2025-01-16 19:58:07 瀏覽:292
微信收藏表情文件夾 發布:2025-01-16 19:28:57 瀏覽:15
ra伺服器搭建 發布:2025-01-16 19:28:12 瀏覽:18
javaftp讀取 發布:2025-01-16 19:28:02 瀏覽:185