Je travaille sur une application MFC basée sur des dialogues dans WinCE. J'ai créé quelques contrôles dans une boîte de dialogue et défiler vers le bas. Lorsque je remonte à nouveau, les commandes du premier écran ont disparu.Les contrôles MFC disparaissent après le défilement
Controls se créé dans OnInitDialog() comme ci-dessous aux coordonnées (50,10)
test->Create(_T("Title"), WS_CHILD|WS_VISIBLE, CRect(50,10,200,40), this, ID_TITLE);
manipulation de rouleau que je fais dans OnVScroll() comme ci-dessous
switch(nSBCode)
{
case SB_LINEDOWN:
{
if(nPos < max)
{
ScrollWindowEx(0, SCROLLDOWN_LINE_STEPSIZE, CRect(0,0, rect.right - 25, rect.bottom), NULL, NULL, NULL, SW_SCROLLCHILDREN | SW_INVALIDATE);
pScrollBar->SetScrollPos(nPos - SCROLLDOWN_LINE_STEPSIZE); //nPos+10
}
break;
}
case SB_LINEUP:
{
if(nPos > min)
{
ScrollWindowEx(0, SCROLLUP_LINE_STEPSIZE, CRect(0,0, rect.right - 25, rect.bottom), NULL, NULL, NULL, SW_SCROLLCHILDREN | SW_INVALIDATE);
pScrollBar->SetScrollPos(nPos - SCROLLUP_LINE_STEPSIZE); //Ex: nPos-10
}
break;
}
default:
printf("Notimplemented");
break;
}
Je traitais Faites défiler la liste et faites défiler vers le haut. Pendant le défilement, toutes les commandes de la boîte de dialogue sont affichées. Mais en faisant défiler vers le haut, les commandes en haut ont disparu.
Que se passe-t-il? Devrais-je implémenter la méthode OnPaint() pour dessiner les contrôles chaque fois que je défile? Si oui, comment?
déplacez-vous/redimensionnez-vous ces contrôles? Peut-être que vous calculez des limites incorrectement quelque part? Fonctionnent-ils encore ou sont-ils complètement partis? Est-ce qu'ils disparaissent partiellement si vous faites défiler vers le bas un peu, ou est-ce toujours le contrôle entier? – tenfour
Il n'y a pas de bouton de réduction dans l'émulateur My WinCE. Suis Windows Mobile 6.x SDK avec Visual Studio 2008 – bjskishore123
@tenfour: Toujours le contrôle entier est en train de disparaître. – bjskishore123