本来的想是用LoadBitmap或LoadIcon的方法来加载,把文字直接PS在图片上,但后来发现LoadBitmap和LoadIcon这两个函数不自动释放资源,一直在内存中存在着,极其占用资源,就想让控件加载图片,然后再将文字写上。
要自定义控件吗?对这个一直不怎么擅长,能避免尽量避免。
如果真要用自定义控件的话,请各位高人给出个解决思路,非常感谢!

解决方案 »

  1.   

    从CStatic派生一个新类 添加WM_PAIN 消息响应 绘制即可 CRect rcClient;
    GetClientRect( rcClient ); CBitmap bmp;
    bmp.LoadBitmap(IDB_BITMAP1);
    CBrush bkBrush;
    bkBrush.CreatePatternBrush(&bmp);
    pDC->FillRect( rcClient, &bkBrush );
    bkBrush.DeleteObject();
    bmp.DeleteObject(); pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(255, 0, 0));
    pDC->DrawText(_T("Test"), rcClient, DT_CENTER|DT_VCENTER|DT_SINGLELINE);
      

  2.   

     重写CStatic类,BitBlt贴图,DrawText绘制文字