fangyukuan

永无止境的追求...追求卓越!!!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一个简单的windows GUI应用程序:

代码下载(VS2008)

 

#include<windows.h> // 编写Windows程序必须包含的头文件

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
// 声明窗口函数原型

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
HWND hwnd;
// 定义窗口句柄
MSG msg; // 定义一个用来存储消息的变量
TCHAR lpszClassName[] = TEXT("窗口");

WNDCLASS wc;
// 定义一个窗口类变量
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc
= WndProc;
wc.cbClsExtra
= 0;
wc.cbWndExtra
= 0;
wc.hInstance
= hInstance;
wc.hIcon
= ::LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor
= ::LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground
= (HBRUSH)::GetStockObject(WHITE_BRUSH);
wc.lpszMenuName
= NULL;
wc.lpszClassName
= lpszClassName;

::RegisterClass(
&wc); // 注册窗口

hwnd
= CreateWindow(lpszClassName, // 创建窗口
TEXT("Windows"),
WS_OVERLAPPEDWINDOW,
120,50,800,600,
NULL,
NULL,
hInstance,
NULL);

::ShowWindow(hwnd,SW_SHOWNORMAL);
// 显示窗口
::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)
{
switch(message)
{
case WM_LBUTTONDOWN: // 鼠标左键下消息
{
::MessageBeep(
0); // 可以发出声音的API函数
}
break;
case WM_DESTROY:
::PostQuitMessage(
0);
break;
default:
return ::DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}

本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/08/31/1814159.html

 

posted on 2010-08-31 23:13  fangyukuan  阅读(5024)  评论(0编辑  收藏  举报