//1.设置窗口大小
MoveWindow(hWnd, , , + , + , FALSE);
//放在InitInstance用于设置位置与窗口大小
//传递句柄就可以绘图 //2.双缓冲绘图模式
void cDefense::DrawAll()
{
HDC hDc = GetDC(m_hWnd);
HDC dcMem = CreateCompatibleDC(hDc);
//创建与hDc兼容的位图 即一片内存
HBITMAP hBitmap = CreateCompatibleBitmap(hDc, , );
//把这个位图与窗口dcMem绑定起来 即把这片内存与窗口dcMem绑定起来 对dcMem操作则为对这片内存的操作
SelectObject(dcMem, hBitmap);
//把所有的图像绘制到dcMem上
DrawMap(dcMem); //把dcMem绘制到hDc上 Select后才能BitBlt
BitBlt(hDc, , , , , dcMem, , , SRCCOPY);
ReleaseDC(m_hWnd, hDc);
DeleteObject(dcMem);
DeleteObject(hBitmap);
} void cDefense::DrawMap(HDC dcMem)
{
HDC dcTemp;
dcTemp = CreateCompatibleDC(NULL);
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, L"images\\maps\\bg.bmp", IMAGE_BITMAP, , , LR_LOADFROMFILE);
SelectObject(dcTemp, hBitmap); BITMAP bitInfo;
GetObject(hBitmap, sizeof(BITMAP), &bitInfo);
//无透明色贴上去
BitBlt(dcMem, , , bitInfo.bmWidth, bitInfo.bmHeight, dcTemp, , , SRCCOPY); DeleteObject(dcTemp);
DeleteObject(hBitmap);
}
//dcTemp是中间窗口 ,可以选择不同的窗口,一个窗口只能选择一张位图 然后可以贴到另一个窗口的某一个位置上
//总结:创建窗口 创建位图 选定位图 获取位图信息 绑定位图
//把一个窗口贴到另一个窗口的某一个位置有透明色
TransparentBlt(dcMem,it->x-bitInfo.bmWidth/,it->y-bitInfo.bmHeight/, bitInfo.bmWidth,bitInfo.bmHeight,dcTemp,,,
    bitInfo.bmWidth,bitInfo.bmHeight,RGB(,,));
//获取当前鼠标位置
//参数LPARAM lParam
//包含头文件 #inlcude <windowsx.h>
tagPOINT ptCur;
ptCur.x = GET_X_LPARAM(lParam);
ptCur.y=GET_Y_LPARAM(lParam);

WIN32常用的更多相关文章

  1. win32常用代码整理

    1.ShellExecute [Use ShellAPI] ShellExecute(Handle, 'open', 'http://www.cnblogs.com/lovelp/', nil, ni ...

  2. Win32汇编常用系统函数

    汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地 ...

  3. Win32汇编常用算数指令

    汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地 ...

  4. Win32中常用消息

    一 .WM_PAINT消息 1 WM_PAINT的产生   由于窗口的互相覆盖等,产生需要绘制的区域,那么会产生WM_PAINT消息. 一般情况下,不直接发送WM_PAINT消息,通过API声明需要绘 ...

  5. python常用命令—终端安装win32的两种方法

    1, pip install pywin32 2, pip install pypiwin32

  6. 初次认识 C# win32 api

    第一次接触win32api,刚开始的时候有点迷迷糊糊的. Windows API 就是windows应用程序接口. win api向上就是windows应用程序,向下就是windows操作系统核心. ...

  7. [转]python 常用类库!

    Python学习 On this page... (hide) 1. 基本安装 2. Python文档 2.1 推荐资源站点 2.2 其他参考资料 2.3 代码示例 3. 常用工具 3.1 Pytho ...

  8. Delphi常用关键字用法详解

    本文详细介绍了Delphi中常用的各个关键字名称及用法,供大家在编程过程中借鉴参考之用.详情如下: absolute: ? 1 2 3 4 5 6 7 8 9 10 //它使得你能够创建一个新变量, ...

  9. WindowsAPI开发常用资料

    主类 子类 功能 Win32API SHGetSpecialFolderLocation 获取系统特殊文件夹路径(SHGetSpecialFolderLocation) 通过 SHGetSpecial ...

随机推荐

  1. mysqli数据库操作简单实例

    mysqli数据库操作简单实例 代码 结果

  2. Linux 安装Redis 5.0

    结构如下: Redis 官方不建议Redis安装在WINDOWS 服务器上(尤其是生产中分布式事物缓存). linux 下Redis 5.0主从复制(一主二从)哨兵模式的搭建:https://www. ...

  3. 使用log4net记录日志到数据库(含自定义属性)

    日志输出自定义属性! 特来总结一下: 一.配置文件 使用log4写入数据库就不多说了,网上方法很多,自定义字段如下 <commandText value="INSERT INTO db ...

  4. .NET MVC权限设计思考之切入点

    在WebForm下我们一般会设计个PageBase继承Page,在OnInit方法中实现对基本权限的验证业务,然后所有的页面在继承PageBase直接继承这项基本权验证业务.而在.NET MVC下我们 ...

  5. Sqlite基本命令集合(linux/fedora/ubuntu)

    注:fedora自带sqlite3,无需安装,直接输入命令sqlite3即可. ------------Ubuntu在命令行输入sqlite3,确认没有安装在进行--- 1.安装sqlite3 ubu ...

  6. Five Invaluable Techniques to Improve Regex Performance

    Regular expressions are powerful, but with great power comes great responsibility. Because of the wa ...

  7. Codeforces 994A. Fingerprints

    题意 从x数组中找到最多的y数组中有的数字,按在x数组中出现的顺序输出. 注意 这题x数组和y数组都不会出现重复数字. 代码 #include <bits/stdc++.h> using ...

  8. The Vertica Analytic Database:C-Store 7 Years Later笔记

    1.设计目标 Vertica数据库可以说是7年之后的C-Store,在2012年发表的这样一篇论文,描述了现在基于C-Store的一部分改进,当然,Vertica借鉴了很多C-Store的思想,但并非 ...

  9. Unity 默认进入的scenes

    1,如果有多个场景,那么第一个场景要放在最上边,(其他的也要加) 2,如果不添加,那么Unity会把当前打开的场景添加进来. 3,切换场景的代码 using UnityEngine.SceneMana ...

  10. ABBYY FineReader去他的光棍节,我要我的双十一

    今天就是双十一,全民剁手的双十一,一年仅一次的双十一,不只是半价的双十一.....此时此刻,多少钱拿起手机在疯狂购物,又有多少人死守着电脑,不敢怠慢一丁点机会,买着买着购物车就空了,然后才发现,咦!超 ...