Igitt! Unterschiedliches Laufzeitverhalten in Debug und Release...
-
Hi!
Ich hab mal wieder ein kosmetisches Problem mit der GUI meiner dialogbasierten Anwendung.Mit folgender Funktion male ich bei der Nachricht OnColumnClick() in mein ListControl (Report-Style) manuell die Sortierpfeile in die jeweiligen Column-Header. Im Debug-Mode läuft auch alles so wie ich es erwartet habe, im Release-Mode wird der Header der Spalte 0 jedoch nicht beschriftet und es erscheint auch kein Pfeil-Bitmap. Der Header bleibt also leer. Die übrigen vier Header rechts davon werden sauber gemalt.
void CMyDlg::SetIndikator(int Col, bool bSortDir) { DWORD dwAlign; CHeaderCtrl *pHeader = m_RecordList.GetHeaderCtrl(); for(int i=0;i<pHeader->GetItemCount();i++) { HDITEM hItem; pHeader->GetItem(i, &hItem); dwAlign = hItem.fmt & HDF_JUSTIFYMASK; if(i!=Col) { hItem.mask = HDI_FORMAT; hItem.fmt = HDF_STRING | dwAlign; hItem.hbm = NULL; pHeader->SetItem(i, &hItem); } else { hItem.mask = HDI_FORMAT | HDI_BITMAP; hItem.fmt |= HDF_BITMAP | HDF_STRING | HDF_BITMAP_ON_RIGHT | dwAlign; if(bSortDir) { hItem.hbm = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP2), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS); } else { hItem.hbm = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP3), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS); } pHeader->SetItem(i, &hItem); } } }Dummerweise meckert der Compiler auch in keiner Weise rum, es gibt also keine Fehlermeldungen.
Habt Ihr eine Idee zu der Sache?Thx schonmal

Gruss Theo
-
ich bas auch mal probiert: debugmode kein Prob, release->absturz!
-
hast du OnColumnClick per classwizard oder per hand eingetragen?
wenn mans per hand macht baut man leicht fehler ein die im debug modus einwandfrei laufen und im release irgendnen mist machen2.hast du das aktuelle plattform sdk?
-
Bei mir gehts jetzt! Folgendes hab ich in OnHeaderClicked(NMHDR *pNMHDR, LRESULT *pResult) verändert:
if( phdn->iButton == 0 ) { ... SetIndikator(nSortedCol,bSortAscending); }also einfach nur die if Abfrage!
-
@Sovok:
1. Hab OnColumnClick() vom Wizzard machen lassen, Flüchtigkeitsfehler gibt's hier also wohl eher nicht...2. Um das Plattform SDK habe ich mich bisher noch nie gekümmert.
Werde das gleich mal checken. Thx!@~Christian:
Deine if-Abfrage verstehe ich noch nicht so richtig. Wieso soll ich meine Funktion nur bei 0 aufrufen?Thx + Gruss Theo
-
So, Fehler gefunden:
StatthItem.fmt |= HDF_BITMAP | HDF_STRING | HDF_BITMAP_ON_RIGHT | dwAlign;muss es
hItem.fmt = HDF_BITMAP | HDF_STRING | HDF_BITMAP_ON_RIGHT | dwAlign;heißen. Ich hatte eine bitweises Inclusiv-ODER als Operator drin...
Jetzt geht's in Debug + Release.Gruss
