Momentálne ste offline a čaká sa, kým sa znova pripojíte na internet

Ako zmeniť farbu pozadia kartu kontroly

DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:179909
Tento článok bol archivovaný. Je publikovaný v aktuálnej podobe a už nebude aktualizovaný.
SUHRN
Tento článok ukazuje ako zmeniť farbu pozadia jednotlivých kartáchOvládací prvok kartu. Predpokladá sa, že máte dialógové okno pole a vybrali aveľkosti ovládacieho prvku kartu do dialógového okna pomocou editora zdrojov.
DALSIE INFORMACIE
Ak chcete zmeniť farbu pozadia každej karte musíte kartu kontrolyvlastník Kresliť a FillRect() metódu použiť na vyplnenie obdĺžnika oblastisamotná karta kefkou vytvoríte a volať metódu SetBkColor()pred voláte TextOut() metódy s textom, ktorý chcetesa zobrazia na karte.

Najprv vychovávať vlastnosti na karte kontrolu v editore Resourcea štýly tab. Vyberte "vlastník čerpať pevná" začiarknite políčko a uložiťvašu prácu. Ak vytvárate dynamicky kartu kontroly počasNezabudnite dialógovým oknom Inicializácia s CreateWindow() alebo CreateWindowEx()zahrnúť TCS_OWNERDRAWFIXED bit v parametri dwStyle.

Nasledujúce # definuje používajú vo vzorke:
        #define RED     RGB(255,0,0)        #define YELLOW  RGB(255,255,0)        #define MAGENTA RGB(255,0,255)        #define WHITE   RGB(255,255,255)        #define BLUE    RGB(0,0,255)				

Ak používate súpravy SDK

Kefy v tejto vzorke výňatok boli vytvorené v WM_INITDIALOG a sústatické rukoväte.

Pridať WM_DRAWITEM správu dialógovým oknom postupu.

Vzorky kód

   case WM_DRAWITEM:      lpdis = (LPDRAWITEMSTRUCT) lParam; // item drawing information      hTabCtrl = GetDlgItem(hDlg, IDC_TAB1);      if (hTabCtrl == lpdis->hwndItem)   // is this the tab control?      {         // which tab? first, second...fifth         switch (lpdis->itemID)         {         case 0:            hbr = hbrRed;            bkColor = RED;            break;         case 1:            hbr = hbrYellow;            bkColor = YELLOW;            break;         case 2:            hbr = hbrMagenta;            bkColor = MAGENTA;            break;         case 3:            hbr = hbrWhite;            bkColor = WHITE;            break;         case 4:            hbr = hbrBlue;            bkColor = BLUE;            break;         }         memset(szTabText, '\0', sizeof(szTabText));         tci.mask = TCIF_TEXT;         tci.pszText = szTabText;         tci.cchTextMax = sizeof(szTabText)-1;         TabCtrl_GetItem(hTabCtrl, lpdis->itemID, &tci);         FillRect(lpdis->hDC, &lpdis->rcItem, hbr);         SetBkColor(lpdis->hDC, bkColor);         TextOut(lpdis->hDC,               lpdis->rcItem.left,               lpdis->rcItem.top,               tci.pszText,               lstrlen(tci.pszText));      }      break;				

Ak ste pomocou MFC

Kefy uvedené sú súčasťou dialógové okno triedy a boli vytvorené pridialógové okno konštruktéra říkalo.

Prepísať metódu OnDrawItem() pre vaše CDialog odvodené triedy pomocou triedySprievodca a pridať nasledujúci kód, zmena názvy premenných ako nevyhnutný.Je dôležité poznamenať, že ukazovateľ na CDC objekt z rukoväťDC v prenesené prostredníctvom LPDRAWITEMSTRUCT vyžaduje, inak je lenpozadie textu bude požadovanú farbu.

Vzorky kód

       void CMFCTabCtrlDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpdis)       {          CDialog::OnDrawItem(nIDCtl, lpdis);          char        szTabText[100];          RECT        rect;          UINT        bkColor;          CBrush      *cbr;          TC_ITEM     tci;          CTabCtrl    *pTabCtrl = (CTabCtrl *)GetDlgItem(IDC_TAB1);          if (pTabCtrl->m_hWnd == lpdis->hwndItem)          {              // which tab?              switch (lpdis->itemID)              {              case 0:                  cbr = &m_brRed;                  bkColor = RED;                  break;              case 1:                  cbr = &m_brYellow;                  bkColor = YELLOW;                  break;              case 2:                  cbr = &m_brMagenta;                  bkColor = MAGENTA;                  break;              case 3:                  cbr = &m_brWhite;                  bkColor = WHITE;                  break;              case 4:                  cbr = &m_brBlue;                  bkColor = BLUE;                  break;              }              memset(szTabText, '\0', sizeof(szTabText));              tci.mask        = TCIF_TEXT;              tci.pszText     = szTabText;              tci.cchTextMax  = sizeof(szTabText)-1;              pTabCtrl->GetItem(lpdis->itemID, &tci);              CDC *dc = CDC::FromHandle(lpdis->hDC);              dc->FillRect(&lpdis->rcItem, cbr);              dc->SetBkColor(bkColor);              TextOut(lpdis->hDC,                      lpdis->rcItem.left,                      lpdis->rcItem.top,                      tci.pszText,                      lstrlen(tci.pszText));          }       }				

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 179909 – Posledná kontrola: 12/05/2015 08:20:01 – Revízia: 2.0

Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition

  • kbnosurvey kbarchive kbctrl kbhowto kbtabctrl kbmt KB179909 KbMtsk
Pripomienky