VC 中如何生成大小超过32767的bitmap?以及C#中如何平滑滚动生成的大位图

问题描述

C#中如何平滑滚动生成的大位图啊我是用的VC里的函数可以现实//以下为绘图部份[DllImport("gdi32.dll",ExactSpelling=true,SetLastError=true)]publicstaticexternIntPtrCreateCompatibleDC(IntPtrhDC);[DllImport("gdi32.dll",ExactSpelling=true,SetLastError=true)]publicstaticexternboolDeleteDC(IntPtrhdc);[DllImport("gdi32.dll",ExactSpelling=true)]publicstaticexternIntPtrSelectObject(IntPtrhDC,IntPtrhObject);[DllImport("gdi32.dll",ExactSpelling=true,SetLastError=true)]publicstaticexternboolDeleteObject(IntPtrhObject);[DllImport("gdi32.dll",ExactSpelling=true,SetLastError=true)]publicstaticexternIntPtrCreateCompatibleBitmap(IntPtrhObject,intwidth,intheight);[DllImport("gdi32.dll",ExactSpelling=true,SetLastError=true)]publicstaticexternboolBitBlt(IntPtrhObject,intnXDest,intnYDest,intnWidth,intnHeight,IntPtrhObjSource,intnXSrc,intnYSrc,intdwRop);[DllImport("gdi32.dll",ExactSpelling=true,SetLastError=true)]publicstaticexternintSetMapMode(IntPtrhdc,intfnMapMode);下面是初始化Graphicsclientdc=this.CreateGraphics();IntPtrhdc=clientdc.GetHdc();SetMapMode(hdc,7);//SetWindowExt(50000,1000);IntPtrhbitmap=CreateCompatibleBitmap(hdc,BaseX*3+Gdlength,MaxY);Membitmap=Bitmap.FromHbitmap(hbitmap);//Membitmap=newBitmap(BaseX*3+Gdlength,MaxY);//IntPtrhbitmap=Membitmap.GetHbitmap();hMemdc=CreateCompatibleDC(hdc);SelectObject(hMemdc,hbitmap);Memdc=Graphics.FromHdc(hMemdc);clientdc.Dispose();DeleteObject(hbitmap);可是当BaseX*3+Gdlength超过32767时候就不行了.Membitmap=Bitmap.FromHbitmap(hbitmap);Membitmap会为空,如何解决呢?好头痛啊还有,C#里怎么现实大图的平滑滚动啊,不要用VC里的函数.谢谢个位了.

解决方案

解决方案二:
自己贴自己顶,我用双缓冲可以让图片显示稍微好点.但还是闪,没有用VC那样做的平滑.不过BITMAP大小可以突破32767的限制了.怎么没人来回贴啊.20分太少了????有哪位朋友帮帮我啊!

时间: 2024-11-03 05:53:02

VC 中如何生成大小超过32767的bitmap?以及C#中如何平滑滚动生成的大位图的相关文章

Outlook 2010提示“附件大小超过了允许的范围”怎么解决

今天通过Outlook 2010发附件时,发现添加大于20M的附件时会提示"附件大小超过了允许的范围".在Microsoft官网发现这的确是一个BUG,解决方法如下: 1.复制下面内容到记事本中: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Preferences] "MaximumAttachmentSize"=dwor

c# c++ dll-C#调用C++和opencv生成的dll库文件,其中函数中带有指针

问题描述 C#调用C++和opencv生成的dll库文件,其中函数中带有指针 大家好,我用C#调用C++的dll,其中一个函数中有指针,参数的定义在C++中是一个结构体,但是我现在遇到的问题是无法获取托管类型的地址和大小,或无法声明指向它的指针,下面我把这个函数在C++中的定义和我自己转到C#中的定义给大家贴出来,大家帮帮忙,本人属于C++和C#新手. C++ 1. int THFI_Create (short nChannelNum,THFI_Param* pParam) 功能:初始化THFa

struts2.0-struts2文件上传当大小超过指定大小的时候不会跳转到input页面

问题描述 struts2文件上传当大小超过指定大小的时候不会跳转到input页面 当上传文件超过设置的指定大小的时候不会跳转到input页面,会与localhost连接中断,控制台也不会打印异常信息,求解 解决方案 在struts2的默认配置清单里有默认的配置文件上传大小限制.你找到后在自己的配置文件里定义上传大小就可以了 解决方案二: 在struts.xml中配置了文件上传大小限制,当超过限制的时候不会跳转到input页面 解决方案三: 在struts.xml中配置了文件上传大小限制,当超过限

xpage视图中的文档超过100客户端ID重复出错并少一个0

问题描述 page视图中的文档超过100客户端ID重复出错并少一个0做开发时用的是Notes8.5.2版本,突然发现,当视图中的文档超出100个的时候,xpage视图中生成的客户端前台ID标识符居然出错了,从99开始中,100出错为10,101出错为11,接下来的ID一直出错,后来版本有更新,但从100到109的ID标识符还是出错,ID中间似乎少了一个0,,IBM居然出现这样Bug错误..等高人出现,还是等待IBM解决...转自:

JS中位置与大小的获取方法_javascript技巧

scrollHeight,clientHeight,offsetHeight的区别 说明: scrollHeight:DOM元素的实际内容的高度,不包border的高度,会随DOM元素中内容的增加(超过可视区后)而变大. clientHeight:DOM元素内容可视区的高度,不包含滚动条和边框的高度. offsetHeight:DOM元素整体的高度,包括滚动条和边框. 当滚动条不出现的时候 这时候DOM元素中没有内容或者内容不超过可视区 scrollWidth=clientWidth,两者皆为可

Word2013文档中设置字体大小的4种方法

  为Word2013文档中的文本设置字体大小是最常用的Word设置之一,用户可以通过以下4种方法设置Word2013文档中的字体大小: 方式1:选中需要改变字体大小的文本块,然后在"开始"功能区的"字体"分组中单击"字号"下拉三角按钮,在字号下拉列表中选择合适的字体大小,如图2013073003所示. 图2013073003 选择字体大小 方式2:选中需要改变字体大小的文本块,在"开始"功能区的"字体"分

如何在Word 2013文档中设置字体大小

为Word2013文档中的文本设置字体大小是最常用的Word设置之一,用户可以通过以下4种方法设置Word2013文档中的字体大小: 方式1:选中需要改变字体大小的文本块,然后在"开始"功能区的"字体"分组中单击"字号"下拉三角按钮,在字号下拉列表中选择合适的字体大小,如图2013073003所示. 图2013073003 选择字体大小 方式2:选中需要改变字体大小的文本块,在"开始"功能区的"字体"分组中

文章中所有图片width大小批量设置方法

怎么设置文章中所有图片width大小批量设置方法?这在实际应用中很常见,下面有一段示例,希望对大家有所帮助   复制代码 代码如下: 前面要加载一个jquery库. <script type="text/javascript"> var setNewsImg = function(obj){ $(obj).find('img').each(function(i){ var imgw = $(this).width(); var imgh = $(this).height()

WPS文字中网格线的大小要如何修改

  有的文档中会需要用到网格线,而不同的文档,不同的字体样式也会需要用到不同的网格线,那么,这个问题要怎么操作呢. 在工作中我们有时需要用到网格线,但是默认的网格线不符合办公格式要求,看完本篇教程,你能找到答案. 操作步骤 1.启动WPS文字,点击菜单栏--视图--勾选网格线,这样网格线就出来了. 点击菜单栏--视图--勾选网格线 2.然后点击菜单栏--页面布局--纸张大小. 点击菜单栏--页面布局--纸张大小 3.在弹出的界面中,文档网格标签下,将行每页修改为25,确定. 行每页修改为25 4