VC界面开发(二)

2013-05-03 18:11:08 · 作者: · 浏览: 122

 

  m_StaticTop.ModifyStyle(0,SS_BITMAP|SS_REALSIZEIMAGE);

  m_StaticTop.SetBitmap(hBitmap);

  m_StaticTop.MoveWindow(0,0,dlgWidth,structBm1.bmHeight);

  3.点击dialog任意位置,都可移动dialog

  重载OnLButtonDown函数:

  [cpp]

  void CInterfaceDlg::OnLButtonDown(UINT nFlags, CPoint point)

  {

  // TODO: Add your message handler code here and/or call default

  PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y));

  //向系统发送HTCAPTION消息,让系统以为鼠标点在标题栏上

  CDialog::OnLButtonDown(nFlags, point);

  }

  4.为dialog添加背景图片

  重载OnPaint函数:

  [cpp]

  {

  //CDialog::OnPaint();

  CPaintDC dc(this);

  CBitmap m_bmpBackground;

  m_bmpBackground.LoadBitmap(IDB_BACKGROUND);

  CRect rect;

  GetClientRect(&rect);

  CDC dcMem;

  dcMem.CreateCompatibleDC(&dc);

  BITMAP bitMap;

  m_bmpBackground.GetBitmap(&bitMap);

  CBitmap *pbmpOld=dcMem.SelectObject(&m_bmpBackground);

  dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);

  //dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);

  }

  5.设置控件的背景颜色和字体颜色

  重载OnCtlColor函数:

  [cpp]

  HBRUSH CRecNineDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

  {

  if (pWnd->GetDlgCtrlID()==IDC_BACKTOP)

  {

  HBRUSH brush = CreateSolidBrush(RGB(200,200,200));

  pDC->SetTextColor(RGB(60,60,60));

  pDC->SetBkMode(TRANSPARENT);

  //pDC->SetBkColor(RGB(255,0,0));

  return brush;

  }

  return CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

  }