绝想首页

VS2010--第一个win32应用程序

平行缘分 [感悟] 2012-03-26 16:39:07 星期一 晴天 查看:24209 回复:3 发消息给作者

//*******************************************************************
// 工程:easywin
// 文件:easywin.cpp
// 内容:一个基本的Win32程序//*******************************************************************


#include

#include

//函数声明

BOOL InitWindow( HINSTANCE hInstance, int nCmdShow );

LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam );

//*******************************************************************

//函数:WinMain()

//功能:Win32应用程序入口函数。创建主窗口,处理消息循环

//*******************************************************************

int PASCAL WinMain( HINSTANCE hInstance, //当前实例句柄

HINSTANCE hPrevInstance, //前一个实例句柄

LPSTR lpCmdLine, //命令行字符

int nCmdShow) //窗口显示方式

{

MSG msg;

//创建主窗口

if ( !InitWindow( hInstance, nCmdShow ) )

return FALSE;

//进入消息循环:

//从该应用程序的消息队列中检取消息,送到消息处理过程,

//当检取到WM_QUIT消息时,退出消息循环。

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

//程序结束

return msg.wParam;

}

//******************************************************************

//函数:InitWindow()

//功能:创建窗口。

//******************************************************************

static BOOL InitWindow( HINSTANCE hInstance, int nCmdShow )

{

HWND hwnd; //窗口句柄

WNDCLASS wc; //窗口类结构

//填充窗口类结构

wc.style = CS_VREDRAW | CS_HREDRAW;

wc.lpfnWndProc = (WNDPROC)WinProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInstance;

wc.hIcon = LoadIcon( hInstance, IDI_APPLICATION );

wc.hCursor = LoadCursor( NULL, IDC_ARROW );

wc.hbrBackground =HBRUSH(GetStockObject(WHITE_BRUSH));

wc.lpszMenuName = NULL;

wc.lpszClassName = "EasyWin";

//注册窗口类

RegisterClass( &wc );
//创建主窗口

hwnd = CreateWindow(

"EasyWin", //窗口类名称

"一个基本的Win32程序", //窗口标题

WS_OVERLAPPEDWINDOW, //窗口风格,定义为普通型

100, //窗口位置的x坐标

100, //窗口位置的y坐标

400, //窗口的宽度

300, //窗口的高度

NULL, //父窗口句柄

NULL, //菜单句柄

hInstance, //应用程序实例句柄

NULL ); //窗口创建数据指针

if( !hwnd ) return FALSE;

//显示并更新窗口

ShowWindow( hwnd, nCmdShow );

UpdateWindow( hwnd );

return TRUE;

}

//******************************************************************

//函数:WinProc()

//功能:处理主窗口消息

//******************************************************************

LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )

{

switch( message )

{

            case WM_KEYDOWN://击键消息

           switch( wParam )

           {

               case VK_ESCAPE:

               MessageBox(hWnd,"ESC键按下了!","Keyboard",MB_OK);

               break;

      case VK_SPACE:

               MessageBox(hWnd,"SPACE键按下了!","Keyboard",MB_OK);

               break;

            }

           break;


         case WM_LBUTTONDOWN://鼠标消息

            {

                  MessageBox(hWnd,"鼠标左键按下了!","Mouse",MB_OK);

                   break;

             }
   case WM_RBUTTONDOWN://鼠标消息

            {

                  MessageBox(hWnd,"鼠标右键按下了!","Mouse",MB_OK);

                   break;

             }


     case WM_PAINT://窗口重画消息

            {

                 char hello[]="我的第一个VS程序 !";

                  HDC hdc;

                 PAINTSTRUCT ps;

                hdc=BeginPaint( hWnd,&ps ); //取得设备环境句柄

                SetTextColor(hdc, RGB(0,0,255)); //设置文字颜色

               TextOut( hdc, 20, 10, hello, strlen(hello) );//输出文字

               EndPaint( hWnd, &ps ); //释放资源

                break;

            }

           case WM_DESTROY://退出消息

           PostQuitMessage( 0 );//调用退出函数

            break;

      }

//调用缺省消息处理过程

           return DefWindowProc(hWnd, message, wParam, lParam);

}

顶一下(542 写日记 1071724 206597
分享排行

 

 

留住已经逝去的峥嵘岁月 记住曾经绽现的万种风情 在记忆即将淡漠的时候 来把这些重新回味

Copyright (C) 2008-2014 www.juexiang.com, All Rights Reserved.

京ICP备2023001011号-3   京公网安备11010802011908号

客服QQ 1017160561 违法和不良信息举报电话 13148464312 邮箱 1017160561@qq.com