Misschien een beetje vage topic titel, maar anders past het niet 
Het probleem is als volgt:
Ik wil op een dialoog-venstertje een aantal cstatics (labels dus) toevoegen. Omdat er geen '=-operator' beschikbaar is voor CStatic is de vector van het type CStatic*.
Wanneer ik de dynamisch aangemaakte CStatics niet in de vector push blijven ze netjes op het dialoogvenster zichtbaar. Maar zodra ik ze in de vector push verdwijnen ze bij het verlaten van de functie.
Dus: Ik maak een CStatic aan. Ik Create() die, SetFont() naar het goede font en push 'm dan in de vector. Aan het eind van de functie, die via een contectmenu wordt aangeroepen, verdwijnt dan het ding van m'n dialoog
De volgorde van aanroep voor de functie is als volgt:
dialoog->ContectMenu->Functie
Wanneer de labels niet in een vector gestoken worden (wegcommentaren van dat gedeelte
) blijven de labels wel staan. Het lijkt er dus op dat het aan de vector ligt?
stukje header:
een stukje code:
Het probleem is als volgt:
Ik wil op een dialoog-venstertje een aantal cstatics (labels dus) toevoegen. Omdat er geen '=-operator' beschikbaar is voor CStatic is de vector van het type CStatic*.
Wanneer ik de dynamisch aangemaakte CStatics niet in de vector push blijven ze netjes op het dialoogvenster zichtbaar. Maar zodra ik ze in de vector push verdwijnen ze bij het verlaten van de functie.
Dus: Ik maak een CStatic aan. Ik Create() die, SetFont() naar het goede font en push 'm dan in de vector. Aan het eind van de functie, die via een contectmenu wordt aangeroepen, verdwijnt dan het ding van m'n dialoog
De volgorde van aanroep voor de functie is als volgt:
dialoog->ContectMenu->Functie
Wanneer de labels niet in een vector gestoken worden (wegcommentaren van dat gedeelte
stukje header:
C++:
1
2
3
| private: std::vector<CStatic*> myLabels; int iLabels; |
een stukje code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| CRect lblSize(TopLeft,BottomRight); CStatic* myLabel = new CStatic(); myLabels.push_back(myLabel); myLabels.at(iLabels)->Create(_T("Hier toegev\noegd"), WS_CHILD|WS_VISIBLE|SS_CENTER, lblSize, this); myLabels.at(iLabels)->ShowWindow(SW_SHOW); myLabels.at(iLabels)->RedrawWindow(); myLabels.at(iLabels)->SetFont(GetFont()); iLabels++; //Sleep(100); // Als ik dit doe blijft ie nog 100ms langer staan... |