A. 如何:从命令行创建 Windows 窗体应用程序
控制台应用程序在命令行执行所有的输入和输出,因此对于快速试验语言功能和编写命令行实用工具,它们是理想的选择。注意在开发Windows窗体应用程序时也将遇到本节中讨论的开发环境的功能,因此,请不要仅因为您不打算编写控制台应用程序就跳过本节!在本节中,您将学习:如何创建新的控制台应用程序。如何在代码编辑器中使用书签。如何查看解决方案资源管理器。如何使代码保持良好的格式。如何使用IntelliSense更快更准确地输入代码。如何生成并运行您的应用程序。在该任务中创建的程序将使用System.IO命名空间中的类获取并显示包含在C:\目录中的所有文件及其大小的列表。您可以这些代码为基础,开发用于在目录中搜索特定文件名的实用工具。创建C#控制台应用程序在“文件”菜单上,单击“新建项目”。出现“新建项目”对话框。该对话框列出VisualC#速成版可以创建的不同默认应用程序类型。选择“控制台应用程序”作为项目类型,并将应用程序的名称更改为“列出文件”。默认位置应是恰当的,但您始终可以根据需要输入新路径。单击“确定”。VisualC#速成版为您的项目创建一个以项目标题命名的新文件夹,然后打开VisualC#速成版主窗口,包括代码窗格,您将在其中输入和编辑构成应用程序的C#源代码。注意窗口顶部的工具栏。该工具栏包含各种图标,用于创建、加载和保存项目、编辑源代码、生成应用程序以及隐藏和显示构成VisualC#速成版环境的其他窗口。该工具栏的最右端的五个图标用来打开重要的窗口,如“解决方案资源管理器”和“工具箱”。将鼠标指针放在其中任一图标上可获取弹出工具提示帮助。注意书签使您可以从源代码中的一个位置快速跳转到另一位置,因此它对于编写大型程序很有用。要创建书签,请单击“切换书签”图标或按Ctrl+B+T。边距中会显示一个青色标记。使用同样的过程可删除现有的书签。您可以创建任意数量的书签,并且可以使用“下一个”和“上一个”书签图标或按Ctrl+B+N和Ctrl+B+P在它们之间跳转。确保“解决方案资源管理器”是可见的,方法是单击屏幕右端的“解决方案资源管理器”选项卡或工具栏中的“解决方案资源管理器”图标。“解决方案资源管理器”是非常有用的窗格,因为它显示构成项目的各种文件。该项目中最重要的文件是“Program.cs”文件,它包含应用程序的源代码。如果希望使VisualC#速成版的显示保持美观整洁,了解如何打开和隐藏“解决方案资源管理器”之类的窗口非常重要。默认情况下,“解决方案资源管理器”是可见的。如果要隐藏“解决方案资源管理器”,请单击其标题栏中的“自动隐藏”图标(图钉图标),或打开“解决方案资源管理器”标题栏中的“选项”菜单并启用“自动隐藏”。其他窗口(如“类视图”和“属性”)也有这些图标。在“代码编辑器”中键入类名“Console”。如果“解决方案资源管理器”仍挡住“代码”窗格,请在“代码”窗格中单击一次以隐藏“解决方案资源管理器”。现在单击Main方法内的左大括号({)的右边,然后按Enter键开始新行。注意编辑器如何自动缩进光标。注意“代码编辑器”始终尝试将代码格式保持为标准的、易于阅读的布局。如果代码开始显得杂乱,您可以重新格式化整个文档,方法是单击“高级”,然后单击“编辑”菜单中的“设置文档格式”,或者按Ctrl+E+D。键入C#类名或关键字时,您可以选择:自行键入完整的单词,或者让IntelliSense工具(“代码”窗格的一部分)帮您完成。例如,当键入“c”时,将显示单词的弹出列表,因为IntelliSense尝试预测您要键入的单词。在这种情况下,您将看不到刚才显示的单词“Console”,因此要么向下滚动列表,要么继续键入单词“console”。当“console”在列表中突出显示时,按Enter或Tab,或者双击它,Console将添加到代码中。使用IntelliSense的好处是可以保证大小写和拼写是正确的。键入代码还是让IntelliSense帮您完成,完全由您决定。键入一个句点和方法名WriteLine。在Console后键入句点时,将立即显示另一个IntelliSense列表。该列表包含属于Console类的所有可能的方法和属性。您需要WriteLine方法,并且应该能够在列表的底部看到它。自行完成键入WriteLine或按向下键以选择它,然后按Enter或Tab或双击它。WriteLine将添加到代码中。键入左括号。您将立即看到IntelliSense的另一项功能—方法签名,它显示为工具提示消息。在本例中,您可以看到19个不同的签名,并可以通过单击向上键和向下键浏览它们。键入字符串“该程序列出目录中的所有文件。”键入引号内的消息,并添加一个右括号。您将看到显示一条红色波浪下划线,提醒您缺少某些符号。键入一个“分号”(;),下划线将消失。完成程序。键入或复制并粘贴以下代码来完成程序:C#staticvoidMain(string[]args){Console.WriteLine(":");System.IO.DirectoryInfodir=newSystem.IO.DirectoryInfo(@"C:\");foreach(System.IO.FileInfofileindir.GetFiles("*.*")){Console.WriteLine("{0},{1}",file.Name,file.Length);}Console.ReadLine();}程序中的最后一行是Console.ReadLine();,它使程序在按Enter键之前暂停。如果省略此行,命令行窗口将立即消失,您将看不到程序的输出。如果您正在创建始终从命令行控制台中使用的命令行实用工具,可能需要省去对ReadLine()方法的调用。运行程序。现在您的第一个程序已完成,可以编译和运行了。要执行此操作,请按F5或单击工具栏中的“开始”图标。在程序编译和运行后,将打开“控制台”窗口,并显示文件及其大小的列表。
B. 用C语言编写windows窗体程序,怎么创建按钮以及怎么添加按钮的触发事件啊
Windows
窗体程序是基于消息机制的,所有控件,它的本质都是一个窗体,都是使用
CreateWindows
函数来创内建,不过类名,容则需要指定为系统预先注册的控件类,比如,你要创建一个按钮控件,就要这样子
CreateWindows(
"BUTTON",
"按钮标题"
),CreateWindows
这个函数你应该用了不少了吧,其余的参数可以参考
MSDN,但是类名我们指定了
“BUTTON”,说明我们要创建一个按钮,每个按钮都有一个唯一的
ID,通过你的消息处理函数,可以知道哪个按钮发生了什么事件,详细讲的话,非常多,你可以参考
MSDN,或者《Windows
程序设计》这本书
。
C. 怎么用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<Windows.h>
#include<tchar.h>
LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);
intWinMain(
__inHINSTANCEhInstance,
__in_optHINSTANCEhPrevInstance,
__inLPSTRlpCmdLine,
__inintnShowCmd
)
{
TCHAR*szName=_T("myWindow");
WNDCLASSEXwc={0};
HWNDhWnd=NULL;
MSGMsg={0};
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.cbSize=sizeof(WNDCLASSEX);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//通过函数来设置一个白色的背景,这里大家设置为NULL看看,会很有趣的
wc.hCursor=NULL;//不设置
wc.hIcon=NULL;//不设置
wc.hIconSm=NULL;//不设置
wc.hInstance=hInstance;//当前程序的句柄,hInstance是有系统给传递的
wc.lpfnWndProc=WinProc;//窗口处理过程的回调函数。
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'sanError"),_T("ErrorTitle"),MB_ICONEXCLAMATION|MB_OK);
return0;
}
ShowWindow(hWnd,nShowCmd);//显示窗口
UpdateWindow(hWnd);
//下面是对消息的循环处理,大家先不必管这些,下节课我会细说的
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);//翻译消息
DispatchMessage(&Msg);//分派消息
}
returnMsg.message;
}
//消息处理函数
LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam)
{
switch(Msg)//处理消息过程
{
caseWM_DESTROY://响应鼠标单击关闭按钮事件
PostQuitMessage(0);//退出消息队列
return0;//退出函数
}
returnDefWindowProc(hWnd,Msg,wParam,lParam);
}
D. 怎么用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;
}
就是一个只有标题栏、关闭按钮、最小化按钮、最大化/还原按钮、显示区域的窗体。
E. C语言如何创建窗口
windows下通过调用API来创建窗口:
#include<windows.h>
int main()
{
MessageBox(NULL,"Hello World!","C图形程序",MB_OK);
return 0;
}
linux下通过调用图形库来创建窗口。
楼主如回果是学C的话,先不答要急于搞这些东西,把基础打扎实才是最重要的,GUI可以后学。基础扎实了,这些只是很简单的东西。
F. 怎样使用visual studio 2010以C语言编一个简单的窗口程序
VC2010 生成的工程默认是 Unicode 编码,字符串必须是 Unicode 字符,在前面加上 L:
MessageBox(NULL, L"Hello World!", L"我的第一个窗口程序", MB_OK);
一般来说,用 VC 开发程序都不这样写,而是应该是使用微软定义的数据类型和宏,这样便能同时编译 ANSI 版本,不用修改源文件。须包含头文件 tchar.h,对于字符串应使用 _T 或 TEXT 宏将其包含,如 _T("Hello")。当定义 Unicode 时,等同于 L"Hello";未定义时等同于 "Hello"。所以一般都写成这样:
#include <windows.h>
#include <tchar.h>
void main()
{
MessageBox(NULL, _T("Hello World!"), _T("我的第一个窗口程序"), MB_OK);
}
当然,上面说过,像楼上那样使用 TEXT 宏也是可以的,两者是同一个东西。
G. 怎样用C语言编写出窗体程序
#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;
}
H. 如何用C语言编写一个窗体应用程序
最好不要,稍微麻烦一点的窗体程序你就搞不定,而且资料非常少
比较合算的应该是C#的WPF, VC的MFC,都不是C语言的