Vraag : OnCtlColor en multiline geeft - oneven gedrag uit

Ik heb een multilijn controle op een dialoog (geen het subclassing van geeft controle uit) uitgeven.  In de dialoog heb ik volgende code

HBRUSH CMyDlg:: OnCtlColor (CDC* pDC, CWnd* pWnd, nCtlColor UINT)
{
HBRUSH hbr = CMyDlg:: OnCtlColor (pDC, pWnd, nCtlColor);

// TODO:  Verander anders om het even welke eigenschappen van gelijkstroom here
als (nCtlColor == CTLCOLOR_STATIC)
{.....
}
als (nCtlColor == CTLCOLOR_EDIT)
{
UINT nID = pWnd->GetDlgCtrlID (); /> schakelaar
{
geval IDC_EDIT_BENEFICIARY:
pDC->SetBkMode (TRANSPARENT); /> m_brBeneficiary terugkeer
}
}

where is een CBrush aand plaatste als volgt in c'tor
m_brBeneficiary.CreateSolidBrush (RGB (255, 0, 0)); het type


When I in geeft controle uit ik tekst krijg zoals in beeld 1 (soort van gewaagde VERKEERDE doopvont -), nu als ik één of andere tekst in de controle selecteer de doopvont verschijnt aangezien ik het wil verschijnen zie beeld 2.  Any van OnCtlColor>


VS 2005 aan Vensters 7

te werken

Antwoord : OnCtlColor en multiline geeft - oneven gedrag uit

Hallo Andy,

Ik denk het probleem „(TRANSPARANTE) pDC->SetBkMode is; “ omdat dit de controle veroorzaakt om de ingegane tekst te trekken enkel over het bestaan (en ik veronderstel met een bepaalde bedoeling de doopvontafbeelding de doopvont gewaagd wordend maakt nadat wat tekst) ingingen - u kunt dit eenvoudig verifiëren door één of andere tekst in te gaan en dan te schrappen gebruikend spatie terug…

Zo zou ik niet voorstellen te gebruiken „pDC->SetBkMode (TRANSPARANT); “ - gebruik „in plaats daarvan SetBkColor“ om de van de achtergrond tekst kleur aan het zelfde te plaatsen als de kleur van de borstel, d.w.z. „RGB pDC->SetBkColor ((255, 0, 0)); “ voor een gevuld rood geef controle uit.

Hoop die hulp,

ZOPPO
Andere oplossingen  
 
programming4us programming4us