1. C语怎么写窗口
C语言在windows当然可以写窗口的,早期的窗口很多是用C而非C++写的只是现在很少有人这样做了(因为有MFC,VCL,QT)以下是一个EX:#include
2. 怎么用c语言写窗体程序
步骤:
1、注册窗口类;
2、创建窗体;
3、消息循环;
4、编写窗口消息处理函数。
代码:
#include <windows.h>
#include<tchar.h>
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR szCmdLine, int nCmdShow)
{
WNDCLASS wc;
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);
return 0 ;
}
HWND newWindow = 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);
return 0;
}
ShowWindow(newWindow, nCmdShow);
UpdateWindow(newWindow);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
default :
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
就是一个只有标题栏、关闭按钮、最小化按钮、最大化/还原按钮、显示区域的窗体。
3. 怎么用C语言编写一个windows窗口
调用window库窗口函数即可创建windows窗口。
必须使用windows的编译器,如VC,MS等等。RegisterClassEx函数:该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。
RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。CreateWindowEx函数:该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。
关于创建窗口和其他参数的内容,请参看CreateWindow。具体仍可见微软的msdn。
消息处理函数WindowProc:该函数是一个应用程序定义的函数。它处理发送给窗口的消息。
WINDPROC类型定义了一个指向该回调函数的指针。WindowProc是用于应用程序定义函数的占位符。
函数原型:LRESULT CALLBACK WindowProc (HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); 参数:hwnd:指向窗口的句柄。uMsg:指定消息类型。
wParam:指定其余的、消息特定的信息。该参数的内容与UMsg参数值有关。
IParam:指定其余的、消息特定的信息。该参数的内容与uMsg参数值有关。
返回值:返回值就是消息处理结果,它与发送的消息有关。一个简单的Window的代码如下:#include
wc.lpszClassName = szName;//窗口类的名字。 wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; RegisterClassEx(&wc);//在系统中注册 hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜欢"),WS_OVERLAPPEDWINDOW, 200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口,窗口标题为"我的窗口我喜欢" if(hWnd == NULL) { MessageBox(NULL,_T("There's an Error"),_T("Error Title"),MB_ICONEXCLAMATION|MB_OK); return 0; } ShowWindow(hWnd,nShowCmd);//显示窗口 UpdateWindow(hWnd); //下面是对消息的循环处理,大家先不必管这些,下节课我会细说的 while(GetMessage(&Msg,NULL,0,0)) { TranslateMessage(&Msg);//翻译消息 DispatchMessage(&Msg);//分派消息 } return Msg.message; }//消息处理函数 LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) { switch(Msg)//处理消息过程 { case WM_DESTROY://响应鼠标单击关闭按钮事件 PostQuitMessage(0);//退出消息队列 return 0;//退出函数 } return DefWindowProc(hWnd,Msg,wParam,lParam); }。
4. 怎么用c语言写窗体程序
步骤:1、注册窗口类;2、创建窗体;3、消息循环;4、编写窗口消息处理函数。
代码: #include
5. 怎么用c语言做一个界面
最低0.27元开通文库会员,查看完整内容> 原发布者:ltqwby 我们大一上学期学习了C语言,黄老师给我们只讲到了结构体,并且只是简单的说了一下,大多数同学对结构体以后的C内容基本属于空白,至今我们大多数同学只会编个简单的DOS程序,很多同学对以后找工作很是迷茫,很多同学都质疑学习C到底能干什么,现在的应用程序那么精彩,用一个C怎么做出来?其实我们仅仅学习C的皮毛,相信对于指针p*和数组a[]的概念大多数同学依旧是很乱,这就需要我们大家多多上机写程序,亲身做一下程序,理解起来就比较容易了。
我们写的程序一般都是在cmd.exe(java也是如此)中运行,但是与用户有友好界面交互的应用程序我们还没有学习,我们也很想写出一个小程序,不需要多精彩,就想附件中自带的计算器这样的简单程序,但是用一个C行吗,以我们现在的知识水平能够编出一个像样的程序吗?我们编译出来的文件都是那样一个超难看的图标,我们能给我们的程序穿上好看的衣服吗?我们还在用着VC的经典版本VC++6.0,这一个看似不够强大的编辑器能够给我们编出一个强大的程序吗,答案是肯定的,一个VC++6.0足够了,虽然其中的BUG和界面设计很粗糙,但是对于我们初学者来说已经足够了,并且编出一个像模像样的应用程序也是足够的。(这让我很想带电脑去学校。
学校规定计算机学院大一不能带电脑真的很奇怪。
)下面我就介绍一下如何用C编写一个简单的真正意义上的窗口程序(无cmd.exe)AuxiliaryShutdown.exe辅助关机程序并且我们要给我们。