tabelle???
-
Möchtest Du nicht erstmal ein Buch oder ein WinAPI-Tutorial durcharbeiten?
-
hab ich schon ich hab doch gesagt das ichs schnell gemacht habe.
kannst du mir jetzt helfen???
wenn ja tu es ansonsten poste doch einfach nicht!!!
-
Wenn du eine List-Box erzeugen willst solltest du aber schon auch LISTBOX als Fensterklasse angeben!
Und was denkst du, wer deine Listbox-Funktion aufrufen soll?!
Also packe die Schleife einfach direkt hinter den Aufruf von CreateWindow(Ex) für die List-Box. Außerdem werden die Child-Windows üblicherweise in WM_CREATE des Hauptfensters angelegt
-
gargamel schrieb:
kannst du mir jetzt helfen???
wenn ja tu es ansonsten poste doch einfach nicht!!!Ja, ich kann Dir helfen:
Arbeite ein WinAPI-Turorial durch oder lese ein WinAPI-Buch (wie z. B. den Petzold (Referenz auf dem Sektor)!Das ist die beste Hilfe, die man Dir geben kann!
-
also ich habs mal mit resourcen center probiert nur das es wieder nich schafft die zeilen einfügen und hwndList is immer NULL wieso????
case WM_INITDIALOG: hwndList = GetDlgItem(hwnd, ID_HELP_ABOUT); sprintf(buf,"window=%d",hwndList); MessageBox(NULL, buf, "Handle", MB_ICONERROR); for (i = 0; i < 10; i++) { SendMessage(hwndList,LB_ADDSTRING, 0,(LPARAM) "hallo"); SendMessage(hwndList,LB_SETITEMDATA, i, (LPARAM) i); } SetFocus(hwndList); return FALSE;
-
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM); static char g_szClassName[] = "MyWindowClass"; static HINSTANCE g_hInstance = NULL; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX WndClass; HWND hwnd; MSG Msg; g_hInstance = hInstance; WndClass.cbSize = sizeof(WNDCLASSEX); WndClass.style = 0; WndClass.lpfnWndProc = WndProc; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hInstance = g_hInstance; WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); WndClass.lpszMenuName = "ID_MENU"; WndClass.lpszClassName = g_szClassName; WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if(!RegisterClassEx(&WndClass)) { MessageBox(0, "Window Registration Failed!", "Error!", MB_ICONSTOP | MB_OK); return 0; } hwnd = CreateWindowEx( WS_EX_STATICEDGE, g_szClassName, "Windows Title", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 320, 240, NULL, NULL, g_hInstance, NULL); if(hwnd == NULL) { MessageBox(0, "Window Creation Failed!", "Error!", MB_ICONSTOP | MB_OK); return 0; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while(GetMessage(&Msg, NULL, 0, 0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { switch(Message) { case WM_COMMAND: switch(LOWORD(wParam)) { case ID_FILE_EXIT: PostMessage(hwnd, WM_CLOSE, 0, 0); break; case ID_HELP_\1: DialogBox(g_hInstance, "Listbox", hwnd, DlgProc); break; } break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, Message, wParam, lParam); } return 0; } BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { int i; HWND hwndList; char buf[100]; switch(Message) { case WM_INITDIALOG: hwndList = GetDlgItem(hwnd, ID_HELP_ABOUT); sprintf(buf,"window=%d",hwndList); MessageBox(NULL, buf, "Handle", MB_ICONERROR); for (i = 0; i < 1; i++) { SendMessage(hwndList,LB_ADDSTRING, 0,(LPARAM) "hallo"); SendMessage(hwndList,LB_SETITEMDATA, i, (LPARAM) i); } SetFocus(hwndList); return FALSE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: EndDialog(hwnd, IDOK); return TRUE; } break; } return FALSE; }
da is mal der ganze code bevor noch jemand meckert
-
Hast du jetzt einen Dialog als Ressource hinzugefügt, der eine List-Box mit der ID ID_HELP_ABOUT enthält?!
Wird denn der Dialog angezeigt? Falls nicht solltest du bei DialogBox für lpTemplate mal MAKEINTRESOURCE(ID_DEINES_DIALOGS) angeben
-
flenders schrieb:
der eine List-Box mit der ID ID_HELP_ABOUT enthält?!
Kann nicht, flenders, da sich die Konstante dann mit dem Menüeintrag (siehe case ID_HELP_\1: in der WndProc) beißen würde...
-
Hatte es mir nicht so genau angeschaut, dachte mir aber schon, dass er da wohl die falsche ID eingesetzt hat
-
also es entsteht auch ein dialog aber mehr auch nich
-
Dann setzt halt für ID_HELP_ABOUT bei GetDlgItem in WM_INITDIALOG mal die richtige ID ein, also die, die du im Ressourcen-Editor für die List-Box vergeben hast. Die List-Box wird ja schon angezeigt, nur eben leer, oder?!
-
genau
-
genau des hab ich vergessen richtig zudiffinieren autsch