帮忙看看哪里错了,为什么就画不出来呢???
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_STATIC_PIC);
CDC dc;
CDC *pDC = pStatic->GetDC();
CWnd *pWnd=GetDlgItem(IDC_STATIC_PIC);
CRect rcStatic ;
pWnd->GetClientRect(&rcStatic);
if(!dc.CreateCompatibleDC(pDC)) return;
CBitmap b;
CBitmap *membitmap;
CBitmap membit;
membit.CreateCompatibleBitmap(pDC,rcStatic.Width(),rcStatic.Height());
BITMAP bm;
for (i = 0; i < 10; i++)
{
hBitMap = GetCardBmp(i); // 获得图象句宾,该函数调用保证正确
b.Attach(hBitMap);
b.GetBitmap(&bm);
membitmap = dc.SelectObject(&membit);
dc.BitBlt(10 + i*15, 10, bm.bmWidth, bm.bmHeight,pDC, 0, 0, SRCCOPY);
dc.SelectObject(membitmap);
b.Detach();
}
pDC->BitBlt(10, 10, 10+9*15+bm.bmWidth, bm.bmHeight, &dc, 0, 0, SRCCOPY);
b.DeleteObject();
ReleaseDC(pDC); // 释放DC资源 */
}
为什么什么都画不出来???
相关推荐
trait-eval:我们都知道Rust的特征系统已经完成了Turing,所以告诉我,为什么我们不利用这个???
trait_eval 我们都知道Rust的特征系统已经完成了Turing,所以告诉我,为什么我们不利用这个??? 当我们有这样的箱子时,谁需要const-fn ? 老实说,我太着急了,我不得不停下来思考我是否应该这样做。 信不信由你,。 例子 这是一个非常易读的示例,其中我们在编译时播放FizzBuzz! trait FizzBuzzType { fn show () -> String ; // Don't worry about this -- it's just so we can print the result } struct Fizz ; impl FizzBuzzType for Fizz { fn show () -> String { "Fizz" . to_string () } } struct Buzz ; im
面试题经典:跳台阶问题
题目: 给定一个有N个台阶的楼梯,一个人从下到上开始跳台阶,这个人有两种跳的方式:一次跳一个台阶,一次跳两个台阶; 问:从台阶底端跳到台阶顶端,有多少种跳台阶的方式? 分析: 首先我们考虑最简单的情况。如果只有1个台阶,那么显然只有一种跳法;如果是2级台阶,那么有2种跳法。对于一个有n级台阶的楼梯来说,我们设跳法为 f(n) ,假如我们先跳1个台阶,则剩下有 n-1 个台阶
Redis服务为什么这么快???
Redis服务为什么这么快???
MATLAB图像错切_matlab_图像处理_水平错切_图像错切_
读入一幅图像,对其进行水平错切、垂直错切
为什么2440与SDRAM地址线错两位相连?
为什么2440与SDRAM地址线错两位相连? 网上说,错两位是为了32位对齐(地址为8位数据地址,2440位宽为32,错两位,跳4byte)。 下面是听南方大哥的教程时记录的: 由于两个内存合起来“数据位宽”是32位。32时,地址总线的地址LADDR0和LADDR1不需要使用。 内存是32位数据宽度,2440的 LADDR0和LADDR1就不用接,从LARRD2开始接到内存的A0一直往下接。 内存是16位数据宽度,2440的LADDR0不用接,从LADDR1开始接到内存的A0一直往下接。 内存是8位数据宽度,2440就从LADDR0开如接到8位位宽的内存的A0一直往下接


界面
