bitblt-Bitblt后图像出现在屏幕右上方而不是窗口中

问题描述

Bitblt后图像出现在屏幕右上方而不是窗口中
 void Device::Display()
{
    hdc = GetDC(hwnd);
    BitBlt(hdc, 0, 0, VIEWWIDTH, VIEWHEIGHT, hdcMem, 0, 0, SRCCOPY);
    ReleaseDC(hwnd, hdc);
    for (int j = 0; j < VIEWHEIGHT; j++)
    {
        memset(frameBuffer[j], 0, VIEWWIDTH*sizeof(unsigned int));
    }
}

void Device::Init()
{
    hdc = GetDC(hwnd);
    hdcMem = CreateCompatibleDC(hdc);
    ReleaseDC(hwnd, hdc);//暂时断开
    bmpInfo = { { sizeof(BITMAPINFOHEADER), VIEWWIDTH, -VIEWHEIGHT, 1, 32, BI_RGB, VIEWWIDTH * VIEWHEIGHT * 4, 0, 0, 0, 0 } };
    LPVOID ptr;
    nBmp = CreateDIBSection(hdcMem, &bmpInfo, DIB_RGB_COLORS, &ptr, 0, 0);
    oBmp = (HBITMAP)SelectObject(hdcMem, nBmp);

    frameBuffer = new unsigned int*[VIEWHEIGHT];

    char*framebuf = (char*)ptr;
    for (int j = 0; j < VIEWHEIGHT; j++)
    {
        frameBuffer[j] = (unsigned int*)(framebuf + VIEWWIDTH * 4 * j);
    }
}

hwnd是CreateWindowA返回的窗口句柄。
程序运行结果是这样

解决方案

参考:http://blog.csdn.net/frenzy/article/details/1432628

时间: 2024-09-17 02:50:40

bitblt-Bitblt后图像出现在屏幕右上方而不是窗口中的相关文章

Win8.1系统升级到Win10后不会自动关闭屏幕怎么办?

Win8.1系统升级到Win10后不会自动关闭屏幕怎么办?   解决方法: 一.驱动问题: 驱动不兼容引起的屏幕无法自动关闭,建议更新显卡驱动! 注意:建议到官网下载Win10驱动而不是使用自动更新. 二.软件干扰 一些软件可能干扰是自动关闭显示器的指令 尝试干净启动后再试是否正常. 1. 按Windows+R, 然后在输入框中输入msconfig,按回车,弹出系统配置对话框. 2. 选择常规,单击"有选择的启动",然后单击清除"加载启动项"上面的勾. 3. 再点击

win7休眠后唤醒电脑但屏幕一直黑屏不亮的解决方法

  win7休眠后唤醒电脑但屏幕一直黑屏不亮的解决方法 1.右键点击桌面"计算机",在菜单栏选择[设备管理器]选项; 2.进入"设备管理器"界面,在下方点击打开[网络适配器]; 3.右键点击本地网卡驱动,选择[属性]选项; 4.进入网卡属性对话框,点击上方[电源管理]; 5.将[允许此设备唤醒计算机]选项前面的勾取消掉; 6.设置完成,点击打开电脑下方[开始菜单],找到[运行]选项,点击打开 7.在运行对话框输入 cmd 命令点击确定,进入DOS界面 8.在命令行界

算法 gis 地图-类似百度地图输入起始点和终点后如何计算出路径(算法如何)?

问题描述 类似百度地图输入起始点和终点后如何计算出路径(算法如何)? 1.类似百度地图输入起始点和终点后如何计算出路径(算法如何)?2.有什么相关的资料我可以去看看嘛?3.大概的工作流程是什么? 谢谢,各位大神~~~~~~~

JavaScript点击按钮后弹出透明浮动层的方法

  这篇文章主要介绍了JavaScript点击按钮后弹出透明浮动层的方法,可实现点击按钮弹出居中的透明浮动层的效果,涉及javascript操作鼠标事件及页面样式的相关技巧,需要的朋友可以参考下: 这里实现点击后页面变灰色,并用JS弹出一个居中的浮动层提示窗口,这个窗口是透明的,可以设置透明度,网上已经有很多类似的JavaScript代码,你可以借鉴一下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

win7安装程序后弹出的UAC对话框“确定”选项是灰色不可点击怎么办

  win7系统默认开启UAC用户账户控制的,所以每次安装程序的时候都会弹出UAC对话框,提醒是否运行程序.但是有些用户在win7专业版系统安装程序后弹出UAC对话框,发现UAC对话框"确定"选项是灰色,根本不可点击,为什么会出现这样的情况呢?带着这个疑问,下面小编给大家讲解具体的解决方法. Win7中的UAC就是"用户账户控制"功能,这项功能可以在程序打算使用管理员权限时,征求用户意见是否给予.这项功能的目的在于防止某些别有用心的程序利用该权限"为非作歹

win7系统开机后弹出supervisory.exe错误怎么办

    supervisory.exe是什么? 通过分析,supervisory.exe是解压缩软件WinRAR中的一个文件,不是病毒也非木马; 解决方法: 1.打开控制面板,点击"卸载程序";   2.找到WinRAR进行卸载; 3.重新下载安装Winrar解压缩软件,或更换其他解压缩软件. 通过以上步骤,基本就能解决Win7系统开机后弹出supervisory.exe应用程序错误的提示框这个问题.

mfc- MFC读取24位bmp图像出问题了,求大神来解决

问题描述 MFC读取24位bmp图像出问题了,求大神来解决 我要实现的是将24位bmp文件读入并在用户区显示,但是显示结果都不对的,谁能来帮忙看下? 注:因为对bmp文件还要做后续的处理(比如RGB转CMYK这样的),所以我现在写的代码只是一个测试是否正确读取bmp的程序.用其它控件去读取图片对我来说是毫无用处的. 这是我的代码: void CMy3View::OnLoad() { // TODO: 在此添加命令处理程序代码 CString strFilter,strFilename,info;

win7-W7 网络频繁掉线,重启电脑或重启网络配置后恢复 几分钟后又出故障.....

问题描述 W7 网络频繁掉线,重启电脑或重启网络配置后恢复 几分钟后又出故障..... WIN7系统,近期不知何故频繁自动网络掉线,重启电脑或重启网络配置后恢复 几分钟后又出故障.....按网上指点资料处理也没效果 快崩溃了 求指导 解决方案 可能是有个人把IP设置错了,或者有个sb拿着网络剪刀手之类的软件搞破坏,建议静态绑定网关MAC 解决方案二: 主要是QQ频繁掉线,网页打不开 解决方案三: 建议两种方法 1下载第三方管理工具 进行优化 监察 2用win7自带的网络诊断工具 推荐第一种 以3

软件开发-安卓,fragmentTabHost中,使用自定义的view后就出错了,求指导

问题描述 安卓,fragmentTabHost中,使用自定义的view后就出错了,求指导 原本在tabspec里的setIndicator就使用简单的字符串,没事,已经完成了. 然后想试试这里使用自定义样式,就报了个nullpointerException 下面贴下代码: package com.example.test_fragmenttaghost; import android.os.Bundle; import android.view.*; import com.example.tes