显示存储在窗口dc中的位图

时间:2017-08-26 13:59:02

标签: c windows winapi

我使用存储在DC内存中的位图将其复制到窗口DC中并使用BitBlt正确显示在屏幕上。

但是现在位图图像已经在第一次复制了。第二次如何显示存储在窗口DC位图中的图像,但不能再将其从内存直流复制到窗口直流。

1 个答案:

答案 0 :(得分:2)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="64dp" android:padding="12dp" > <ImageView android:src="@mipmap/ic_launcher" android:id="@+id/myimage" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_marginRight="10dp" /> <TextView android:textSize="12dp" android:textColor="#000" android:text="Testing" android:id="@+id/mytitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/myimage" /> </RelativeLayout> 不是慢功能。自20世纪90年代初以来,它一直受到显卡的大幅加速,而且它在操作系统中被称为全部。在blitting中没有观察到性能问题。

因此,正确的做法是致电BitBlt以回复您的窗口BitBlt消息。您将从存储器DC(加载位图的位置)blit到窗口的DC上。这将&#34;画&#34;窗口上的位图。

这里昂贵的操作是创建内存DC并加载位图。如果你想优化位图的显示,那么做一次这些事情(例如,当创建&#34; viewer&#34;窗口时)并缓存内存DC,重新使用它每次你需要重绘窗口。这样,你唯一能做的就是从一个DC到另一个DC,正如我上面所说,它非常快。