VC++语言创建一个普通的应用程序窗口
首先,打开Microsoft Visual C++6.0
软件,从File菜单中选择New。在New对话框中,单击Projects标签,选择Win32 Application。在Location域中,选择一个子目录(即你想把创建的文件放到哪里),在Project name里输入该项目的名称,此时该名称是hellowin,这便是Location域中显示的目录的子目录。应选中Create New Workplace单选钮,在Platforms部分应该指明Win32,选择OK。
将会出现一个标题为“Win32 Application-Step 1 of 1”的对话框,指出要建立一个“An empty project”,按下Finish按钮。在弹出的窗口中再单击OK。
从File菜单中再次选择New。在New中,单击Files标签,选择C++ Source File。应选中Add To Project复选框,并应指明hellowin。在File域中输入hellowin.c,选择OK。
现在输入以下代码:
#include
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[]=TEXT("HelloWin");
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);//LoadIcon函数:加载图标供程序使用
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);//LoadCursor 加载鼠标指针供程序使用
wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
//GetStockObject 获取一个图形对象,在这个例子中,是获取绘制窗口背景的刷子
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName =szAppName;
if(!RegisterClass(&;wndclass))//RegisterClass 为程序窗口注册窗口类
{
MessageBox(NULL,TEXT("This program requires Windows NT!"),
szAppName,MB_ICONERROR);//MessageBox 显示消息框
return 0;
}
hwnd=CreateWindow(szAppName,//CreateWindow 根据窗口类创建一个窗口
TEXT("The Hello Program"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,iCmdShow);//ShowWindow 在屏幕上显示窗口
UpdateWindow(hwnd);//指示窗口刷新自身
while(GetMessage(&;msg,NULL,0,0))//从消息队列中获取消息
{
TranslateMessage(&;msg);//转换某些键盘消息
DispatchMessage(&;msg);//将消息发送给窗口过程
}
return msg.wParam;
}
LRESULT CALLBACK WndProc (HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_CREATE:
PlaySound(TEXT("Windows XP 启动.wav"),NULL,SND_FILENAME|SND_ASYNC);
//PlaySound 播放一个声音文件
//为了使PlaySound函数能正常使用,编译前应做以下设置:单击Proj
ect->Setting->
//Link选项卡中选中General,然后在Object/Library Modules文本框中
//添加winmm.lib(windows多媒体库)
//同时要确保你指定的声音文件在你的系统中确实存在
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&;ps);//开始窗口绘制
GetClientRect(hwnd,&;rect);//获取窗口客户区的尺寸
DrawText(hdc,TEXT("Hello,Windows XP!"),-1,&;rect,//显示文本串
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&;ps);//结束窗口绘制
return 0;
case WM_DESTROY:
PostQuitMessage(0);//在消息队列中插入一条"退出"消息
return 0;
}
return DefWindowProc(h