文档章节

Win32 API 窗口编程模板

_编程菜鸟_
 _编程菜鸟_
发布于 2013/11/20 21:52
字数 585
阅读 115
收藏 0
点赞 0
评论 0
#include<windows.h>
//窗口函数声明
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM ); 

//入口函数 WinMain()
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

                     LPSTR lpCmdLine,int nCmdShow)
{
    WNDCLASS wndclass;        //定义窗口类结构变量
    HWND hwnd;                //定义窗口句柄
    MSG msg;                  //定义消息结构变量

    /********定义窗口类各属性*******/
    wndclass.style=CS_HREDRAW|CS_VREDRAW;       //改变窗口大小则重画
    wndclass.lpfnWndProc=WndProc;               //窗口函数为  WndProc
    wndclass.cbClsExtra=0;                      //窗口类无扩展
    wndclass.cbWndExtra=0;                      //窗口实例无扩展
    wndclass.hInstance=hInstance;               //注册窗口类的实例句柄
    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口用默认图标
    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);   //窗口用箭头光标
    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //背景为白色
    wndclass.lpszMenuName=NULL;                 //窗口默认无菜单
    wndclass.lpszClassName=TEXT("FirstWinClass");         //窗口类名为FirstWinClass
    /**********************************/
    if(!RegisterClass(&wndclass)) return FALSE; //注册窗口类,失败则返回

    //创建窗口
    /****从第一个参数开始代表窗口类名Chap1Exa1,窗口名为Chap1Exa1,重叠式窗口风格,左上角屏幕坐标,
    宽度和高度,窗口无父窗口,窗口无主菜单,创建窗口的实例句柄,此窗口无创建参数****/
    hwnd = CreateWindow(TEXT("FirstWinClass"),TEXT("FirstWinClass"),WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

    ShowWindow(hwnd,nCmdShow);              //显示窗口
    UpdateWindow(hwnd);                     //更新窗口的客户区

    //以下消息循环
 BOOL bRet;
    while((bRet=GetMessage(&msg,NULL,0,0))!=0)        //获取消息,遇WM_QUIT退出循环
    {
  if (bRet==-1)
  {
   return -1;
  }
  else
  {
   TranslateMessage(&msg);             //键盘消息转换
   DispatchMessage(&msg);              //派送消息给窗口函数
  }
    }
    return msg.wParam;
}

//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam)
{
    switch(message)                  //根据消息值转相应的消息处理
    {
    case WM_PAINT:                   //重画窗口客户区消息
        HDC hdc;                     //定义设备描述表句柄
        PAINTSTRUCT ps;              //定义绘图信息结构变量
        hdc = BeginPaint(hwnd,&ps);  //获取需重画窗口的设备描述表句柄

    // TextOut输出文本的GDI函数,客户区坐标(20,60)处显示文本,限制为35个字母
    /***第一个参数为设备描述表句柄,表示在指定设备上输出文本;第二、三个参数指定
    输出位置坐标;第四个参数是要输出的字符串;第五个参数是字符串允许输出的长度****/
        TextOut(hdc, 20, 60,TEXT("The First Win32 Application Showing Window"),42);
        EndPaint(hwnd,&ps);          //结束要重画的窗口
        break;
    case  WM_DESTROY:                //撤消窗口消息
        PostQuitMessage(0);          //产生退出程序消息WM_QUIT
        break;
 default:
  DefWindowProc(hwnd,message,wParam,lParam);//其它转默认窗口函数
    }

    return 0;
}

本文转载自:

共有 人打赏支持
_编程菜鸟_
粉丝 3
博文 104
码字总数 14021
作品 0
武汉
vc++windows编程技术(3)

从一开始就有两种编写windows应用程序的方法。第一种是使用win32定义的API函数,体现细节好。另一种是使用特殊的c++类库,它囊括了API,目前最流行的是MFC。两种方法的区别:所有windows应用...

mli ⋅ 2014/10/23 ⋅ 2

【Visual C++】游戏开发笔记二十六 DirectX 11各组件的介绍&第一个DirectX 11 Demo的创建

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7688515 作者:毛星云 邮箱: happylifemxy@163.com 这节笔记主要讨论DirectX 11现有...

长平狐 ⋅ 2012/11/12 ⋅ 0

C# Windows API应用之FlashWindowEx ——实现窗口闪烁的方法

Windows API Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应...

微wx笑 ⋅ 2015/04/20 ⋅ 0

[Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

3D相关开发 [direct-X] 1、direct-X最小框架 [OpenGL] 1、环境搭建及最小系统 [OpenGL] 2、企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [51单片机] 1602液晶显示控制代码 [51单片机] 1...

史迪奇2号 ⋅ 2017/08/01 ⋅ 0

留天下/UIEngine

C++编写的简单UI引擎,方便开发windows界面程序,附件中含有用此UI引擎开发的游戏地图编辑器和一个冒险小游戏(该游戏暂时还未做完)。 项目附件中有地图编辑器和冒险小游戏64位可执行文件。U...

留天下 ⋅ 2017/07/03 ⋅ 0

C#实现捕获当前屏幕截图(转)

C#实现捕获当前屏幕截图(转) 编程思路(API 编程): 先调用 GetForegroundWindow 获取当前活动程序窗口句柄,然后调用 GetWindowDC 获取窗口的设备句柄(或 GetDC 函数),调用 BitBlt 位图...

qq_36439293 ⋅ 05/28 ⋅ 0

vs2010编译时一直出错,找不到错误点,新手菜鸟求指教~

include //窗口处理函数 LRESULT CALLBACK WndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { return DefWindowProc(hwnd,uMsg,wParam,lParam) ; } int WinMain(HINSTANCE hI......

lx_牛牛 ⋅ 2016/10/07 ⋅ 4

windows程序设计自学笔记(一)

本周开始自学windows编程,选的教材是《windows程序设计第五版》(珍藏版),没钱买书,只能下了pdf的书籍来看。 《windows程序设计第五版》(珍藏版)共分3个大部分,分别是:1)基础知识[...

赵西元 ⋅ 2012/12/13 ⋅ 0

Win32汇编开发环境介绍和RadAsm简明教程

Win32汇编开发环境介绍和RadAsm简明教程 现在很多朋友都在学习汇编语言,一方面汇编语言是大学计算机课程的必修课,另一方面则是为了从其它语言转到汇编语言来,无论什么原因,我认为学习汇编...

nothingfinal ⋅ 2009/08/01 ⋅ 0

模块句柄(实例句柄)和句柄的区别

看过windows核心编程的都知道有很多概念。同时如果你不只对windows有所了解,对linux mac等 *unix操作系统也有所了解的话。可能会出现有的东西都重合,而有的没有。这里说下win下句柄概念。 ...

土匪猿 ⋅ 05/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 21分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 43分钟前 ⋅ 0

用户登录信息-钉子效果(基于jquery2.0)

本js效果使用jquery2.0,清晰的分解用户登录信息的(钉子效果),该效果直接用在作者网站(www.phpkhbd.com)上。 里面的难点有:定时器,延时。 大致效果如下: 一开始: 鼠标放上去的时候:...

宁哥实战课堂 ⋅ 45分钟前 ⋅ 0

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 56分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 今天 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 今天 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 今天 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 今天 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部