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