Ich habe eine CMFCToolBar
-abgeleitete Klasse und eine davon ist das Mitglied einer CDockablePane
-abgeleiteten Klasse.Wie kann ich eine CMFCToolBar Bildmasken erkennen lassen?
ich an der VisualStudioDemo Probe sah zu sehen, wie es dieses und haben bisher getan hat:
ist (24bit)int CMyPane::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
// Removed all "return -1 on error" code for better readability
CDockablePane::OnCreate(lpCreateStruct);
if(m_toolBar.Create(this, AFX_DEFAULT_TOOLBAR_STYLE, IDR_MY_TOOLBAR) &&
m_toolBar.LoadToolBar(IDR_MY_TOOLBAR, 0, 0, TRUE /* Is locked */))
{
if(theApp.m_bHiColorIcons) // Is true, i.e. following code is executed
{
m_toolBar.CleanUpLockedImages();
m_toolBar.LoadBitmap(IDB_MY_TOOLBAR_24, 0, 0, TRUE /*Locked*/);
}
m_toolBar.SetPaneStyle(m_toolBar.GetPaneStyle() | CBRS_TOOLTIPS | CBRS_FLYBY);
m_toolBar.SetPaneStyle(m_toolBar.GetPaneStyle() & ~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
m_toolBar.SetOwner(this);
// All commands will be routed via this control , not via the parent frame:
m_toolBar.SetRouteCommandsViaFrame(FALSE);
}
return 0;
}
Die hohe Farbenbild geladen, aber sichtbar die magentafarbene Maske (R255 G0 B255) ist. Ich sehe nicht, wie ich der Toolbar mitteilen kann, die Maske zu erkennen.
Ist das überhaupt möglich?
Akzeptieren Sie dies als Antwort, weil dies die Lösung für 24-Bit-Bilder sein kann, worum es sich bei der Frage handelt. Obwohl meine Lösung anders ist, kann dies anderen helfen, die 24-Bit-Bilder verwenden müssen. – foraidt
Ich gebe zu, es ist nicht die perfekte Lösung. Sobald der Benutzer die Farbe des Knopfgesichts ändert, wird die Transparenz wahrscheinlich verschwinden. – djeidot