Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1351183
  • 博文数量: 118
  • 博客积分: 3888
  • 博客等级: 中校
  • 技术积分: 2940
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-10 18:15
个人简介

一看二做三总结

文章分类

全部博文(118)

分类: C/C++

2011-07-15 23:23:02

 
本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接,严禁用于任何商业用途。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net 
 
1)在MFC中建立Win32 Application类项目(不需要MFC)
2)添加头文件
     建立WinApi.h与WInApi.Cpp两个文件
3)WinApi.h文件内容
  1. #include "windows.h"
  2. LRESULT CALLBACK WndPro(HWND, UINT, WPARAM, LPARAM); // 声明处理函数
  3. int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int); // 声明入口函数

3)WinApi.c文件内容

 

  1. #include "WinApi.h"

  2. int WINAPI WinMain(HINSTANCE hInstance, // 实例句柄

  3.                    HINSTANCE hPreInstance,

  4.                    LPSTR lpZCmdline, // 息队列

  5.                    int nCmdShow)

  6. {

  7.     WNDCLASS wcApp; // 定义窗口类

  8.     MSG msg; // 定义windows消息

  9.     HWND ghWnd = NULL; // 定义窗口句柄

  10.     char *szAppName = "程序名称";

  11.     char *szAppTitle = "窗口名称"


  12.     // 给窗口类赋值

  13.     wcApp.style = CS_HREDRAW; // 窗口风格

  14.     wcApp.lpfnWndProc = WndProc; // 消息处理函数

  15.     wcApp.cbWndExtra = 0;

  16.     wcApp.cbCl***tra = 0;

  17.     wcApp.hInstance =hInstance; // 应用程序句柄

  18.     wcApp.hICon = LoadIcon(NULL, IDC_WINLOGO); // 加载图标

  19.     wcApp.Hcursor = LoadCursor(NULL, IDC_ARROR); // 加载鼠标样式

  20.     wcApp.hbrBackground = (HBRUSH)COLOR_ACTIVEBORDER; // 加载背景

  21.     wcApp.lpszMenuName = NULL; //无菜单

  22.     wcApp.lpszClassName = szAppName; // 设置窗口类名



  23.     RegisterClass(&wcApp); // 注册窗口

  24.     // 调用CreateWindow函数建立窗口

  25.     ghWnd = CreateWindow(szAppName, szAppTitle, WS_SYSMENU,

  26.                    100, 100, 350, 300,

  27.                    NULL, NULL, hInStance, NULL);

  28.     if (NULL == ghWnd)

  29.     {

  30.         return 0;

  31.     }



  32.     ShowWindow(ghWnd, nCmdShowP); // 显示窗口

  33.     UpdateWindow(ghWnd); // 更新窗口



  34.     // 创建消息循环

  35.     while (GetMessage(&msg, NULL, 0, 0)) // 接收消息,存入msg

  36.     {

  37.         TranslateMessage(&msg); // 解释消息

  38.         DispatchMessage(&msg); // 处理消息, 发送WndProc函数, 即wcApp.lpfnWndProc指向的函数

  39.     }

  40.     

  41.     return msg.wParam;

  42. }



  43. LRESULT CALL BACK WndProc(HWND hwnd, // 窗口句柄

  44.                          UINT message, // 消息标示

  45.                          WPARAM wParam,

  46.                          LPARM lParam)

  47. {

  48.     // 消息处理

  49.     switch(message)

  50.     {

  51.     case WM_CREATE:

  52.         ......

  53.         break;

  54.     case WM_LBUTTON:

  55.         ......

  56.         break;

  57.     case WM_DESTROY:

  58.         ......

  59.         PostQuitMessage(0); // 向Windows发送程序终止请求

  60.         break;

  61.     default:

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

  63.     }

  64.     

  65.     return FALSE;

  66. }

 

本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接,严禁用于任何商业用途。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net 

 

 

 

阅读(2596) | 评论(0) | 转发(0) |
0

上一篇:VC学习系列序言

下一篇:VC学习--编译错误

给主人留下些什么吧!~~