windows 建立窗口的程序代码
2013-07-07 20:08
459 查看
#include <windows.h> #include <windowsx.h> //函数声明 static BOOL InitWindow( HINSTANCE hInstance, int nCmdShow ); LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ); //******************************************************************* //函数:WinMain() //功能:Win32应用程序入口函数。创建主窗口,处理消息循环 //******************************************************************* int WINAPI 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", //窗口类名称 "hello", //窗口标题 WS_OVERLAPPEDWINDOW, //窗口风格,定义为普通型 200, //窗口位置的x坐标 200, //窗口位置的y坐标 320, //窗口的宽度 200, //窗口的高度 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; } break; case WM_RBUTTONDOWN://鼠标消息 { MessageBox(hWnd,"鼠标右键按下了!","Mouse",MB_OK); break; } case WM_LBUTTONDOWN://鼠标消息 { MessageBox(hWnd,"OK!You click the right place!!!","Mouse",MB_OK); break; } case WM_PAINT://窗口重画消息 { char hello[]="hello world!!!It's the first windows!!!"; HDC hdc; PAINTSTRUCT ps; hdc=BeginPaint( hWnd,&ps ); //取得设备环境句柄 SetTextColor(hdc, RGB(100,150,100)); //设置文字颜色 TextOut( hdc, 40, 80, hello, strlen(hello) );//输出文字 EndPaint( hWnd, &ps ); //释放资源 break; } case WM_DESTROY://退出消息 PostQuitMessage( 0 );//调用退出函数 break; } //调用缺省消息处理过程 return DefWindowProc(hWnd, message, wParam, lParam); }
相关文章推荐
- windows 建立窗口的程序代码
- VC菜菜鸟:建立第一个基于Visual C++的Windows窗口程序
- Java2实用教程(第二版)程序代码——第十五章 建立窗口和菜单
- VC菜菜鸟:建立第一个基于Visual C++的Windows窗口程序
- windows下32位汇编语言学习笔记 第四章 第一个窗口程序 1 (消息的使用和入口代码)
- 代码量化 -Windows服务程序建立步骤(2010-12-29)
- ABAP--批量建立员工照片关联程序参考代码
- Windows根据程序标题查找正在运行的程序的HWND--判断窗口程序是否运行
- 基于visual c++之windows核心编程代码分析(8)自动下载更新程序
- 第四章 查找记事本程序的窗口句柄 windows程序设计 王艳平版
- Windows 编程- 生成窗口程序
- 建立一个 C#.Net Windows Service 程序
- 2013 Mac Air 装Win7双系统问题-安装程序无法创建新的分区,也无法定位系统 & Windows无法安装所需的文件,错误代码0x80070570
- 01windows程序运行机制、代码编写流程与剖析
- VB 枚举窗口和关闭程序窗口的代码
- 如何用 C 注册 windows 服务程序 (分析 Java Service Wrapper 代码)
- 如何确定windows右下解弹出的窗口是哪个程序搞的鬼
- 基于visual c++之windows核心编程代码分析(44)监测任意程序函数起始地址
- 基于visual c++之windows核心编程代码分析(65)实现程序自我复制
- Windows窗口程序点叉后程序仍在进程中