Technipion
Erfahrenes Mitglied
Hey Leute,
ich habe einige kleinere Kartenspiele programmiert, die man übers Netzwerk daheim oder im Internet spielen kann. Im Moment hänge ich aber am Server-Verwaltungstool. Ich brauche dafür eine ListBox (eigentlich ein ListView) in der ich die beteiligten Spieler anzeigen kann (so etwas wie Spielername, Netzwerkname, IP, usw...).
Das Problem ist, dass die ListView nicht läuft. Ich habe eine Seite gefunden auf der erklärt wird, wie man eine solche ListView erstellt:
http://www.codeproject.com/Articles/2890/Using-ListView-control-under-Win32-API
Also habe ich alles so gemacht aber es passiert nichts.
Ich habe commctrl.h included, comctl32.lib verlinkt und alles in einer Funktion initialisiert:
In der WM_CREATE case meines Hauptfensters habe ich dann die ListBox erstellt:
Wenn ich das Programm ausführe, erscheint die ListBox zwar, aber es befinden sich keine Columnen oder Items darin. Auf einen Klick reagiert sie mit einem gepunkteten Rechteck ganz oben (nulltes Element wird markiert).
Ich benutze Code::Blocks 10.05 und habe auch das Windows XP Look'n'Feel Flag gesetzt.
Sieht einer von euch woran es liegt, oder habt ihr eine Idee was ich versuchen könnte?
Danke schonmal im Voraus
Gruß Technipion
ich habe einige kleinere Kartenspiele programmiert, die man übers Netzwerk daheim oder im Internet spielen kann. Im Moment hänge ich aber am Server-Verwaltungstool. Ich brauche dafür eine ListBox (eigentlich ein ListView) in der ich die beteiligten Spieler anzeigen kann (so etwas wie Spielername, Netzwerkname, IP, usw...).
Das Problem ist, dass die ListView nicht läuft. Ich habe eine Seite gefunden auf der erklärt wird, wie man eine solche ListView erstellt:
http://www.codeproject.com/Articles/2890/Using-ListView-control-under-Win32-API
Also habe ich alles so gemacht aber es passiert nichts.
Ich habe commctrl.h included, comctl32.lib verlinkt und alles in einer Funktion initialisiert:
Code:
void InitCmmnControls()
{
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwICC = ICC_LISTVIEW_CLASSES;
InitCtrls.dwSize = sizeof(INITCOMMONCONTROLSEX);
BOOL bRet = InitCommonControlsEx(&InitCtrls);
}
Code:
//create list view control
hListLoggedIn = CreateWindowEx(WS_EX_CLIENTEDGE, "listbox", "", WS_VISIBLE | WS_CHILD, 100, 100, 500, 100, hwnd, NULL, NULL, NULL);
LVITEM LvItem;
LVCOLUMN LvCol;
memset(&LvCol, 0, sizeof(LvCol));
LvCol.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
LvCol.cx = 100;
LvCol.pszText = "Item";
SendMessage(hListLoggedIn, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
SendMessage(hListLoggedIn, LVM_INSERTCOLUMN, 0, (LPARAM)&LvCol);
LvCol.pszText = "Sub Item1";
SendMessage(hListLoggedIn, LVM_INSERTCOLUMN, 1, (LPARAM)&LvCol);
LvCol.pszText = "Sub Item2";
SendMessage(hListLoggedIn, LVM_INSERTCOLUMN, 2, (LPARAM)&LvCol);
LvCol.pszText = "Sub Item3";
SendMessage(hListLoggedIn, LVM_INSERTCOLUMN, 3, (LPARAM)&LvCol);
memset(&LvItem, 0, sizeof(LvItem));
LvItem.mask = LVIF_TEXT;
LvItem.cchTextMax = 256;
LvItem.iItem = 0;
LvItem.iSubItem = 0;
LvItem.pszText = "Item 0";
SendMessage(hListLoggedIn, LVM_INSERTITEM, 0, (LPARAM)&LvItem);
LvItem.iItem = 1;
LvItem.iSubItem = 0;
LvItem.pszText = "Item 1";
SendMessage(hListLoggedIn, LVM_INSERTITEM, 0, (LPARAM)&LvItem);
Ich benutze Code::Blocks 10.05 und habe auch das Windows XP Look'n'Feel Flag gesetzt.
Sieht einer von euch woran es liegt, oder habt ihr eine Idee was ich versuchen könnte?
Danke schonmal im Voraus
Gruß Technipion