日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

编程调整控件背景色

發布時間:2025/3/20 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程调整控件背景色 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編程調整控件背景色

蘇金國

  VC中由于沒有直接的屬性設置可以調整編輯控件的背景色,因此我們需要利用圖形設備接口的有關操作來實現這一目標。

  首先,利用Class Wizard為WM_CTLCOLOR 消息構造相應的消息映射,將得到以下的消息處理函數:

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

  {

   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   return hbr;

   // TODO: Return a different brush if the default is not desired

   // return hbr;

  }

  接著檢查CTLCOLOR_EDIT 控件的nCtlColor 屬性值,與我們希望控件的背景色是否存在差異。最好的方法是使用窗口句柄的比較,而不要比較兩個指針。因此需要在消息處理函數中增加以下代碼:

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

  {

  //獲得控件

   CEdit * pEdit = (CEdit *)GetDlgItem(IDC_REDEDIT);

   if(nCtlColor == CTLCOLOR_EDIT &&&& pEdit->GetSafeHwnd() == pWnd->GetSafeHwnd())

  {

  // 設置背景模式

  pDC->SetBkMode(TRANSPARENT);

  // 調整文本顏色,以便更好地在新的背景色上顯示

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

  // 返回紅色的刷子

  return m_Brush;

   }

   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   return hbr;

  }

  如果控件置為只讀即READONLY ,則最好將nCtlColor與CTLCOLOR_STATIC進行比較,代碼如下:

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

  {

  // 取得具有只讀性質的控件

  CEdit * pEditReadOnly = (CEdit *)GetDlgItem(IDC_READONLYEDIT);

  //取得控件對應的窗口

  HWND hWndReadOnly = pEditReadOnly->GetSafeHwnd();

  if(nCtlColor == CTLCOLOR_STATIC &&&& hWndReadOnly == pWnd->GetSafeHwnd()) {

  // 設置背景色為刷子顏色(當前為紅色)

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

  // 調整文本色

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

  // 返回紅色的刷子

  return m_Brush;

   }

  HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   return hbr;

   }

  通過以上程序,我們就可直接調整編輯控件的背景色。???

總結

以上是生活随笔為你收集整理的编程调整控件背景色的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。