工控编程吧

标题: 上位机MFC如何设置背景模式 [打印本页]

作者: qq263946146    时间: 2019-7-31 10:15
标题: 上位机MFC如何设置背景模式
地直接使用设备上下文输出内容时,我们可以调用函数SetBkMode为设置背景的框。

  1. void CGkbc8Dlg::OnPaint()
  2. {
  3.         if (IsIconic())
  4.         {
  5.                 CPaintDC dc(this); // device context for painting

  6.                 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

  7.                 // Center icon in client rectangle
  8.                 int cxIcon = GetSystemMetrics(SM_CXICON);
  9.                 int cyIcon = GetSystemMetrics(SM_CYICON);
  10.                 CRect rect;
  11.                 GetClientRect(&rect);
  12.                 int x = (rect.Width() - cxIcon + 1) / 2;
  13.                 int y = (rect.Height() - cyIcon + 1) / 2;

  14.                 // Draw the icon
  15.                 dc.DrawIcon(x, y, m_hIcon);
  16.         }
  17.         else
  18.         {
  19.                 CPaintDC dc(this);
  20.                         //设置灰色背景
  21.         dc.SelectStockObject(GRAY_BRUSH);
  22.         CRect rect;
  23.         GetClientRect(rect);
  24.         dc.Rectangle(rect);

  25.         //设置不透明背景
  26.         dc.SetBkMode(OPAQUE);
  27.         dc.TextOut(10, 10, _T("Hello World!"));

  28.         //设置透明背景
  29.         dc.SetBkMode(TRANSPARENT);
  30.         dc.TextOut(10, 50, _T("Hello World!"));

  31.                 CDialog::OnPaint();
  32.         }
  33. }
复制代码
上面代码我们可以看到dc.SetBkMode(TRANSPARENT);
模式还有一些可以选择,我们可以查阅MSDN手册。
[MFC408]1[/MFC408]
[weixinlianxi]1[/weixinlianxi]








欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4