Bonjour,
Je rencontre un problème d'affichage sur la barre de titre de mes fenêtres enfant MDI quand je suis en thème Office (Bleu,Noir,Argenté ou Cyan).
J'ai le bandeau inférieur qui se redessine mal (Sur quelques pixel). cf Screens
Quand je suis en thème XP sa semble Ok.
Voici la déclaration : (Fenêtre principale)
Code C/C++ :
// crée la fenêtre frame MDI principale
pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
{
delete pMainFrame;
return FALSE;
}
m_pMainWnd = pMainFrame;
J'ai laissé intact le code généré par VS2010 pour la gestion des thèmes
(Je n'ai pas c/c la fonction raison de longueur OnApplicationLook(theApp.m_nAppLook);)
Code C/C++ :
CMainFrame::CMainFrame()
{
theApp.m_nAppLook = theApp.GetInt(_T("ApplicationLook"), ID_VIEW_APPLOOK_VS_2008);
}
OnCreate du MainFrame :
Code C/C++ :
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)
return -1;
OnApplicationLook(theApp.m_nAppLook);
Je crée ma fenêtre comme cela : (Child est la class dérivé de CMDIChildWndEx)
Code C/C++ :
MainChild = new Child;
if (MainChild->Create("MDICLIENT",Network,
WS_CHILD|WS_OVERLAPPEDWINDOW,
CRect(0,0,800,400),((CMainFrame*)Parent))==0)
return false;
J'ai essayé plusieurs choses :
Dans le OnPaint() ou OnNcPaint()
J'ai utiliser InvalidateRect() , Invalidate() , DrawCaption()
Mais rien à faire !
Je n'utilise pas de CDocument , j'ai remarqué que les fenêtre MDI crée par un CDocument n'avait pas de genre de problème , mais je ne veux les utiliser
Voila si avez des idées ,
Merci d'avance.
Ciao