c语言可以开发GUI程序吗?
推荐于2018-05-13
展开全部
可以的1.可以用 winC ,就是直接在windows下编程。这个比较麻烦,因为所有的东西都必须自己写(如创建窗口,初始化等一些基本的)以前老师上课的时候讲过,理解了之后,感觉其实很简单,而且都是一个套路,看个例子就能明白的
2.可以用MFC创建界面,里面要具体实现的东西,直接用C语言写就可以了,很方便,其实MFC就是对winC的一种封装,就是第一点说的你要写的那些基本的东西(创建窗口,初始化之类的),他都给你弄好了,不用自己写,直接创建一个工程就OK了
3.可以创建C#工程,用C#创建界面(直接拖控件就行,像VB那样),然后,你要实现的东西用C语言写。或者,你先将要实现的东西,用C语言写好,编译成动态链接库DLL,然后在C#工程中调用该DLL。C#工程实际上就起到一个界面封装的目的,也比较方便
2.可以用MFC创建界面,里面要具体实现的东西,直接用C语言写就可以了,很方便,其实MFC就是对winC的一种封装,就是第一点说的你要写的那些基本的东西(创建窗口,初始化之类的),他都给你弄好了,不用自己写,直接创建一个工程就OK了
3.可以创建C#工程,用C#创建界面(直接拖控件就行,像VB那样),然后,你要实现的东西用C语言写。或者,你先将要实现的东西,用C语言写好,编译成动态链接库DLL,然后在C#工程中调用该DLL。C#工程实际上就起到一个界面封装的目的,也比较方便
2013-10-16
展开全部
c语言要借助第三方的库或者 api,c语言本身不能开发gui,看看 win23 编程吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把这个程序拿到编译器下编译看看吧
#include<stdlib.h>
#include<windows.h>
LRESULT CALLBACK wndproc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE a,PSTR cmdline,int icmdshow)
{
TCHAR classname[]=TEXT("window");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
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=classname;
RegisterClass(&wndclass);
hwnd=CreateWindow
(
classname,
NULL,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
500,
300,
NULL,
NULL,
hinstance,
NULL
);
ShowWindow(hwnd,icmdshow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK wndproc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
TCHAR text[4];
int a=98*77;
itoa(a,text,10);
HDC hdc;
PAINTSTRUCT ps;
switch (message){
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,150,50,text,4);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wparam,lparam);
}
#include<stdlib.h>
#include<windows.h>
LRESULT CALLBACK wndproc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE a,PSTR cmdline,int icmdshow)
{
TCHAR classname[]=TEXT("window");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
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=classname;
RegisterClass(&wndclass);
hwnd=CreateWindow
(
classname,
NULL,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
500,
300,
NULL,
NULL,
hinstance,
NULL
);
ShowWindow(hwnd,icmdshow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK wndproc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
TCHAR text[4];
int a=98*77;
itoa(a,text,10);
HDC hdc;
PAINTSTRUCT ps;
switch (message){
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,150,50,text,4);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wparam,lparam);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询