當前位置:首頁 » 編程語言 » c語言用戶界面ui
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言用戶界面ui

發布時間: 2023-01-14 10:22:27

A. 編寫的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;
}

B. 如何設計用c語言編寫的軟體的用戶界面UI

Windows為圖形界面提供了完畢的C語言介面。可以說,Windows下所有的圖形界面都是基於C語言編寫的。VB很簡單吧?底層也是調用的C語言介面。 你可以去了解Windows API。

C. C語言的UI

你這些問題是必須要搞清楚的。

1. 首先,UI的實現在不同的操作系統平台上是有所不同的。Windows的UI是內置於操作系統的,Linux/Unix的UI則是通過一個應用程序實現的。由此看來,變成語言本身並不提供對UI的支持,C#語言本身也沒有UI功能,但微軟隨同C#編譯環境發布了與封裝了系統UI介面函數的系列類庫,因此使用C#可以方便地進行UI的編程。同樣C語言自身也沒有提供UI的內容,但支持C語言的編譯器VC則包含了MFC類庫,MFC對windows操作系統的UI介面函數進行了封裝,也很好用。另外,C更側重於底層的開發,而C#的目標則是用於提高開發效率。簡單地說,C#的編譯器和底層的虛擬機正式使用C語言來開發的。C#的機制類似於Java。

2. C語言的可移植性是比較差的,這也正是由於它偏向於底層的緣故。在Linux下編譯好的可執行程序,不能直接拿到windows平台運行的。Java的跨平台是由於在虛擬機上對位元組代碼的解釋後執行的。而運行於不同操作系統上的虛擬機同樣也是不能跨平台的。

3. C語言一般只要能對指針比較熟練地運用,也就可以了。至於程度,當然要和你所做的項目和平台的要求有關。

【優勢軟體實訓】

D. 學c語言如何做出有界面的程序

1、新建一個C項目,點擊文件,新建,項目,選擇C++Win32控制台應用。

E. UI是用什麼語言寫的C語言可以寫UI嗎或者什麼語言寫的UI可以給C語言寫的程序用!!!

linux 的GNome界面是GTK框架的,使用C語言實現的。

ios 的界面也可以用C語言實現。

windows下面的界面全是最後調用win32 api實現的。全部是c語言介面。

ps:會C語言和懂C語言是有區別的。如果只是寫著玩兒的話,用Qt是一個不錯的開始。

F. 編寫的C語言程序,怎樣製作一個UI界面用什麼軟體好

如果用C語言在windows下做GUI應用,要看看windows系統編程。這個可以用Windows自己的SDK開發。或者可以用GTK做界面,C的話可以用這個SDK(開發包)。此外還有wxwidget,FLTK等。

G. C語言:做過手機UI界面的請進

class CUserWnd
{
public:
BOOL SetButtonInfo(const std::vector<UserData::ButtonInfo> &vtBtnInfo);
BOOL SetTextInfo(const std::vector<UserData::TextInfo> &vtTxtInfo);
BOOL SetProgressInfo(const std::vector<CProgress> &vtPrgInfo);
BOOL SetBackground(UserData::BackgroundInfo bkInfo);

...
}

然後對於不同功能的界面,我們只需要設置不同的數值即可:

//背光窗口
pWndBacklight->SetButtonInfo(vtBtnInfo1);
pWndBacklight->SetTextInfo(vtTxtInfo1);
pWndBacklight->SetBackground(bkInfo1);

//電池窗口
pWndBattery->SetButtonInfo(vtBtnInfo2);
pWndBattery->SetTextInfo(vtTxtInfo2);
pWndBattery->SetBackground(bkInfo2);

這樣我們只需要一個窗口類,就能實現變化各異的界面。

在這里還有一點需要提一下,一般來說,我們顯示界面和功能的實現應該分開,這樣代碼看起來就不會變得雜亂無章。我們可以採用這么一種做法,定義一個CCommand類,主要是執行按鈕的相關功能操作,然後窗口類繼承於該類即可:

class CCommand
{
protected:
BOOL ExecuteCmd(UserData::CtrlIndex ctrlIndex,DWORD dwParam);

....

}

BOOL CCommand::ExecuteCmd(UserData::CtrlIndex ctrlIndex,DWORD dwParam)
{
switch(ctrlIndex)
{
case UserData::BTN_EXIT:
{
return OnCmdExit();
}
case UserData::BTN_EXPLORER:
{
//Execute the explorer and then exit the application
CCommon::Execute(m_Option.GetPathTab(Option::PATH_EXPLORER).c_str());
}

...

}
}

//窗口的繼承
class CUserWnd:
public CCommand
{
...
}

H. 使用「Microsoft Visual C++ 開發軟體」,用「C語言」來繪制UI界面。

無論看哪本書,你最好對C++有一定的了解。
推薦孫鑫的《VC++深入詳解》.PDF