1. c语言(注意是c)怎 调用api创建个窗体
若是你的要在windows上面运行,这属于windows编程编程范畴!c语言只是一种工具而已。
代码如下!(c语言不能像java那样直接new 出窗体)
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
switch(Message) {
case WM_DESTROY: {
PostQuitMessage(0);
break;
}
default:
return DefWindowProc(hwnd, Message, wParam, lParam);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[]="Hello world";
HWND hWnd;
MSG msg;
WNDCLASS wndclass;
memset(&wndclass,0,sizeof(wndclass));
wndclass.style =CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbWndExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon =LoadIcon(null,IDI_WINLOGO);
wndclass.hCursor=LoadCursor(null,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH) GetStockObject (WHITE_BRUSH);
wndclass.lpszMenuName=null;
wndclass.lpszClassName=szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(null,TEXT("windows error!"),szAppName,MB_ICONERROR);
return 1;
}
hWnd=CreateWindow(szAppName,
TEXT("THE HELLO PROGRAME"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
null,
null,
hInstance,
null);
ShowWindow(hWnd,iCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,null,null,null))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
2. 如何用C语言开发窗体应用程序。。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
#include <windows.h>
//Function prototype.
int WINAPI WinMain(HINSTANCE,HINSTANCE ,LPSTR ,int);
LRESULT CALLBACK MainWndProc(HWND ,UINT ,WPARAM,LPARAM);
InitApplication(HINSTANCE);
InitInstance(HINSTANCE,int);
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT nMsg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(nMsg)
{
case WM_COMMAND:
{
hdc = GetDC((HWND)lParam);
GetClientRect ((HWND)lParam, &rect) ;
DrawText(hdc,"HOHO",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
ReleaseDC((HWND)lParam,hdc);
}
break;
case WM_PAINT:
{
hdc = BeginPaint(hwnd,&ps);
GetClientRect (hwnd, &rect) ;
DrawText(hdc,"Hello Word",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd,&ps);
}
break;
//按键
case WM_KEYDOWN:
if(wParam == VK_ESCAPE)
SendMessage(hwnd,WM_CLOSE,0,0);
break;
case WM_CHAR:
switch(wParam)
{
case 'w':
MessageBox(hwnd,"UP","KeyBorad Input",MB_OK);
break;
case 's':
MessageBox(hwnd,"DOWN","KeyBorad Input",MB_OK);
break;
case 'a':
MessageBox(hwnd,"LEFT","KeyBorad Input",MB_OK);
break;
case 'd':
MessageBox(hwnd,"RIGHT","KeyBorad Input",MB_OK);
break;
}
break;
//关闭
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,nMsg,wParam,lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInStance,
LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;
if(!InitApplication(hInstance))
{
MessageBox(NULL,"InitApplication Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}
if(!InitInstance(hInstance,nCmdShow)){
MessageBox(NULL,"InitInstance Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}
while(GetMessage(&msg,(HWND) NULL,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
InitApplication(HINSTANCE hInstance)
{
WNDCLASS wc;
wc.style = CS_DBLCLKS;
wc.lpfnWndProc = MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MainWClass";
return RegisterClass(&wc);
}
InitInstance(HINSTANCE hInstance,int nCmdShow){
HWND hwnd;
HWND hwndCloseButton;
hwnd = CreateWindow(
"MainWClass",
"Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
(HWND)NULL,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);
if(!hwnd)
return FALSE;
hwndCloseButton = CreateWindow(
"BUTTON",
"CLOSE",
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
100,
100,
100,
80,
hwnd,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);
if(!hwndCloseButton)
return FALSE;
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}
3. C语言如何创建窗口
windows下通过调用API来创建窗口:
#include<windows.h>
int main()
{
MessageBox(NULL,"Hello World!","C图形程序",MB_OK);
return 0;
}
linux下通过调用图形库来创建窗口。
楼主如果是学C的话,先不要急于搞这些东西,把基础打扎实才是最重要的,GUI可以后学。基础扎实了,这些只是很简单的东西。
4. 用c语言怎么创建一个窗口
通过调用API来创建窗口:
#include<windows.h>
int main()
{
MessageBox(NULL,"Hello World!","C图形程序",MB_OK);
return 0;
}
linux下通过调用图形库来创建窗口。
5. c语言程序设计窗体
可以的吧,那就要用到Windows程序设计了,利用系统提供的API函数和VC++程序向导,就能设计出一个窗口了。
还有就是整个Windows都是用c写的呢,所以可以编写程序窗口
6. 用C语言创建窗口的代码
MFC的东西太肤浅,我们学习的是一门语言,不是别人写好自己套弄的东西,C语言 不管你是VC 还是C++BUILDER 基础都是C
7. 怎么用c语言写窗体程序
步骤:
1、注册窗口类;
2、创建窗体;
3、消息循环;
4、编写窗口消息处理函数。
代码:
#include<windows.h>
#include<tchar.h>
LRESULTCALLBACKWindowProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam);
intWINAPI_tWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPWSTRszCmdLine,intnCmdShow)
{
WNDCLASSwc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=WindowProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=NULL;
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)COLOR_WINDOW;//(HBRUSH)GetStockObject();
wc.lpszMenuName=NULL;
wc.lpszClassName=_T("MyWindowClass");
if(!RegisterClass(&wc))
{
MessageBox(NULL,_T("无法注册窗口类"),_T("错误"),MB_OK);
return0;
}
HWNDnewWindow=CreateWindow(
_T("MyWindowClass"),
_T("我的第一个winapi程序"),
WS_OVERLAPPEDWINDOW,
0,
0,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if(NULL==newWindow)
{
MessageBox(NULL,_T("无法创建窗体"),_T("错误"),MB_OK);
return0;
}
ShowWindow(newWindow,nCmdShow);
UpdateWindow(newWindow);
MSGmsg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
LRESULTCALLBACKWindowProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam)
{
switch(uMsg)
{
caseWM_DESTROY:
{
PostQuitMessage(0);
break;
}
default:
returnDefWindowProc(hwnd,uMsg,wParam,lParam);
}
return0;
}
就是一个只有标题栏、关闭按钮、最小化按钮、最大化/还原按钮、显示区域的窗体。
8. C语言怎么设计窗口呀
楼主
首先这不是c与c#区别
你学c#的时候之所以有这些控件,能进行界面编辑是因为你建的是winform程序,在编辑的时候实际上也是有代码控制的。如果你c#建的是控制台程序的话就会与c语言一样了,但是你在应用中加入 using System.Windows.Forms;那么就可以调用winform程序的控件了。
一般的话你是为了学习一种语言的话建议学习控制台应用程序。如果用界面的话对你语言学习没有什么好处,反而会让你分心。当你真真学习做一个项目的时候可以用winform来了。反正当你学习到一定程度你就会明白其中的关系了。
对于c语言的话我本人只用过控制台,通过代码来创建窗口,也是可以产生你所需要的效果的。
你要明白现在你要学的是一门语言,你要懂得语法等知识,而不是费心去拉几个控件,所以好好的学好基础吧。c#的话也在控制台上来联系。你要学的不是开发工具,所以不要把精力浪费在这里,而且还把自己搞得乱七八糟的。
至于楼上的,vc是c++的编译工具,只不过可以运行c语言程序而已,楼主用的工具比vc好的多,vc老了,楼主的才是新版,不用理会
9. 在c语言中如何创建一个窗体
这个呀~~~~~~~可以使用一些图形图像用的LIB,.h,也就是用OpenGL或者是DirectX自己画……不过估计不会有人这么干。
一般可以用VC++的MFC类库,那个甚至有向导使你不用自己写一句代码就生成一个窗体。然后具体加入什么功能就看你自己了。