Frage : OnCtlColor und Mehrkanal redigieren - ungerades Verhalten

Ich lasse eine multi Linie Steuerung auf einem Dialog (kein Subclassing der redigierensteuerung) redigieren.  Im Dialog habe ich das folgende code

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

// TODO:  Alle mögliche Attribute des DC here
ändern wenn (nCtlColor == CTLCOLOR_STATIC)
{.....
}
sonst wenn (nCtlColor == CTLCOLOR_EDIT)
{
UINT nID = pWnd->GetDlgCtrlID ();
Schalter (nID)
{
Fall IDC_EDIT_BENEFICIARY:
pDC->SetBkMode (TRANSPARENT);
Rückkehr (HBRUSH) m_brBeneficiary;
}
} das

where m_brBeneficiary ist ein CBrush aand, das eingestellt wird, wie folgt im c'tor
m_brBeneficiary.CreateSolidBrush (RGB (255, 0, 0));


When I Art in die redigierensteuerung erhalte ich Text, wie in Abbildung 1 (Art des fetten Gusses - FALSCH), jetzt, wenn ich etwas Text in der Steuerung vorwähle, der Guss erscheint, während ich ihn scheinen wünsche sehe, dass Abbildung 2.

Any Ideen geschieht, was an und wichtiger geht, wie man es erhält, um correctly.

VS 2005 zu bearbeiten auf Windows 7

Attachments:
Falsches font
Etwas Text und den korrekten Guss appears
vorwählen
Guss ohne das OnCtlColor handler

Antwort : OnCtlColor und Mehrkanal redigieren - ungerades Verhalten

Hallo Andy,

Ich denke, dass das Problem das „pDC->SetBkMode ist (TRANSPARENT); “ weil dieses die Steuerung veranlassen, den eingeführten Text gerade über dem Existieren zu zeichnen (und ich schätzen, dass aus irgendeinem Grund das Gussdiagramm den Guss bildet, der fett erhält, nachdem etwas eingeführter Text) - Sie können dieses einfach überprüfen, indem Sie etwas Text eintragen und dann löschen using Rückschritt…

So vorschlagen ich ch, um „das pDC->SetBkMode nicht zu benutzen (TRANSPARENT); “ - „SetBkColor“ stattdessen verwenden, um die Hintergrundfarbe des Textes auf die selben wie die Farbe der Bürste einzustellen, d.h. „pDC->SetBkColor (RGB (255, 0, 0)); “ für ein Rotes gefüllt Steuerung redigieren.

Hoffen, dass Hilfen,

ZOPPO
Weitere Lösungen  
 
programming4us programming4us