[问题] 使用 GDI 时的 DC 和 Object 问题 (已自行解决)

楼主: xxtomnyxx (翼天)   2014-01-02 14:49:05
呃......小弟我程式语言是自学的,
如果这个问题不适合发在这里就请坂主砍了吧。
使用 GDI 进行绘图及视窗输出时,
要先创建出一个 Object,
然后创建一个 DC 后用 SelectObject 把 Object 选入 DC 中,
但是我发现把 Object Select 到 DC 之后,
就算把 Object 用 DeleteObject 删除掉,
DC 还是能正常的使用。
就是说如果我用 CreateDIBSection 创建出一个 Object,
然后在这个 Section 中填入颜色,
再用 CreateCompatibleDC 创建出一个 DC 后,
用 SelectObject 把上述 Object 选取到 DC 上,
然后就把该 Object 用 DeleteObject 删除掉,
但是被选取的 DC 却还是能用 BitBlt 或其它绘图 API
把我填入的颜色画到其它 DC 上。
基于效能需求,
我必须把大量图片在一开始就读入内存,
我记得 Object 和 DC 的数量是有限制的,
所以我应该把读入内存的图档用 Object 储存呢?
还是把这个 Object 选取到 DC 后就把 Object 删除,
用 DC 来储存呢?
如果用 Object 来储存,
每次我要使用图档时就要把这个 Object 选取到 DC 上,
我是要每次需要时就创建一个 DC 然后用完就把 DC 删除掉,
还是要创建一个 DC 后固定用这个 DC 当媒介?
如果要固定一个 DC 当媒介,
那我要怎么确定这个 DC 中包含有的 Object 是哪个以避免重复选取呢?
感谢各位的指教!

Links booklink

Contact Us: admin [ a t ] ucptt.com