国产18禁黄网站免费观看,99爱在线精品免费观看,粉嫩metart人体欣赏,99久久99精品久久久久久,6080亚洲人久久精品

C++對(duì)話框背景色的設(shè)置方法

時(shí)間:2008-10-04 16:03:00   來源:無憂考網(wǎng)     [字體: ]
一個(gè)基于對(duì)話框的MFC AppWizard應(yīng)用程序中,如何改變對(duì)話框的背景顏色呢?對(duì)于這個(gè)問題,其實(shí)可以 由幾種不同的方法來實(shí)現(xiàn),具體如下(粗斜體代碼為增添的):
  ---- 方法一:調(diào)用CWinApp類的成員函數(shù)SetDialogBkColor來實(shí)現(xiàn)。
  ---- 其中函數(shù)的第一個(gè)參數(shù)指定了背景顏色,第二個(gè)參數(shù)指定了文本顏色。下面的例子是將應(yīng)用程序?qū)υ?框設(shè)置為藍(lán)色背景和紅色文本,步驟如下:
  ---- ① 新建一個(gè)基于Dialog的MFC AppWizard應(yīng)用程序ExampleDlg。
  ---- ② 在CExampleDlgApp ::InitInstance()中添加如下代碼:
  BOOL CExampleDlgApp: : InitInstance ( )
  {
  …
   CExampleDlgDlg dlg;
   m_pMainWnd = &dlg;
  //先于DoModal()調(diào)用,將對(duì)話框設(shè)置為藍(lán)色背景、紅色文本
   SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));
   int nResponse = dlg.DoModal();
  …
  }
  ---- 編譯并運(yùn)行,此時(shí)對(duì)話框的背景色和文本色已發(fā)生了改變。值得注意的是:在調(diào)用DoModal()之前必須 先調(diào)用SetDialogBkColor,且此方法是將改變應(yīng)用程序中所有的對(duì)話框顏色,并不能針對(duì)某一個(gè)指定的對(duì) 話框。
  ---- 方法二:重載OnPaint(),即WM_PAINT消息。有關(guān)代碼如下(以上例工程為準(zhǔn)):
  void CExampleDlgDlg::OnPaint()
  {
   if (IsIconic())
  …
   else
   {
    CRect rect;
    CPaintDC dc(this);
    GetClientRect(rect);
    dc.FillSolidRect(rect,RGB(0,255,0)); //設(shè)置為綠色背景
    CDialog::OnPaint();
   }