贴图遮住控件

约定不等于承诺〃 2022-08-26 11:25 212阅读 0赞
  1. 你试试这个方法吧
  2. 在初始化函数OnInitDialog()中加入:
  3. BOOL CTestDlg::OnInitDialog()
  4. {
  5. CDialog::OnInitDialog();
  6. CBitmap bmp;
  7. bmp.LoadBitmap(IDB_BITMAP2);
  8. m_brBk.CreatePatternBrush(&bmp);
  9. bmp.DeleteObject();
  10. return TRUE; // return TRUE unless you set the focus to a control
  11. }
  12. 在打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),添加如下:
  13. HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  14. {
  15. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  16. if (pWnd == this)
  17. {
  18. return m_brBk;
  19. }
  20. return hbr;
  21. }
  22. ********************************************************************************************************************************
  23. 不要用控件加背景图!可以直接加的!像下面这样做,我就是这样做的,没问题!
  24. 先载入一张图片,如IDIDB_BITMAP
  25. 头文件中:
  26. CBrush m_brBk;//在public中定义
  27. 源文件中:
  28. 在初始化函数OnInitDialog()中加入: (或者在构造函数中)
  29. BOOL CTestDlg::OnInitDialog()
  30. {
  31. CDialog::OnInitDialog();
  32. CBitmap bmp;
  33. bmp.LoadBitmap(IDB_BITMAP);
  34. m_brBk.CreatePatternBrush(&bmp);
  35. bmp.DeleteObject();
  36. return TRUE; // return TRUE unless you set the focus to a control
  37. }
  38. 再打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),
  39. 添加如下:
  40. HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  41. {
  42. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  43. if (pWnd == this)
  44. {
  45. return m_brBk;
  46. }
  47. return hbr;
  48. }

发表评论

表情:
评论列表 (有 0 条评论,212人围观)

还没有评论,来说两句吧...

相关阅读

    相关 OpenGL纹理

    1.纹理贴图的步骤 1)创建纹理对象,并为它指定一个纹理。 glGenTextures() glGenerateMipmap() 2)确定纹理如何应用到每个像素上 g