Aspect Napisano Listopad 25, 2018 Autor Zgłoś Udostępnij Napisano Listopad 25, 2018 m-rog napisał: 1. W jaki sposób można zmienić kolor tekstu i tła w kontrolkach list,edit i static text??? Służą do tego komunikaty WM_CTLCOLOR..., które muszą być obsłużone przez kontrolkę rodzica. Dostajesz w nim uchwyt do kontekstu urządzenia, w którym będą wyrysowanie kontrolki, więc musisz zmodyfikować po prostu ten kontekst. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Riddle Napisano Listopad 25, 2018 Zgłoś Udostępnij Napisano Listopad 25, 2018 Jeśli chodzi o dialogbox. Ten kod nie działa ponieważ odnośi się do sytuacji kiedy jest stworzone okno główne (hwnd) i ono wywołuje OpenFile. A umnie jest tylko jeden Dialogbox, który ma to wywołać!!! Próbowałem zmodyfikować ten kod, ale wciąż nie działa!!! A co do tej klasy...... chodziło mi o to czy ktoś ma swoją własną klase zrobioną przez siebie, która potrafiła by zrobić (prawie) wszystkie operacje na plikach. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Parody Napisano Listopad 26, 2018 Zgłoś Udostępnij Napisano Listopad 26, 2018 Czy uchwyt do okna hwnd jest poprawny tzn. czy to okno istnieje (może to twój dialog ale tego nie wiem :) ), jeśli nie to daj zamiast hwnd uchwyt do okna dialog. Druga sprawa jeśli używasz ofn.hInstance=hInst to spróbuj dać taki kod w WM_CREATE albo WM_INITDIALOG: hIns=((LPCREATESTRUCT)lParam) ->hInstance; Osobiście mam to na NULL bo inaczej zawsze wywalało mi błąd :? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Riddle Napisano Listopad 26, 2018 Zgłoś Udostępnij Napisano Listopad 26, 2018 Mój program nie ma głównego okna, tylko jest zwykły dialogbox. A w "hwndOwner" mam zapisany jako null a w "hInstance" przypisałem tylko handle dialogbox'u. To co mi podałeś próbowałem zrobić, ale wtedy program nie chciał się skompilować!!! Potrzebuje jakieś linki lub proste programy, w których były by wykorzystane komonikaty tj.: WM_CTLCOLORSTATIC,WM_CTLCOLORDLG,WM_CTLCOLORLISTBOX. Ostatnie pytanie. W jaki sposób wykorzystuje się funkcje DlgDirList w ListBox'ie???? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Listopad 26, 2018 Autor Zgłoś Udostępnij Napisano Listopad 26, 2018 m-rog napisał: Potrzebuje jakieś linki lub proste programy, w których były by wykorzystane komonikaty tj.: WM_CTLCOLORSTATIC,WM_CTLCOLORDLG,WM_CTLCOLORLISTBOX. Poniższy fragment kodu wklej sobie do funkcji obslugi Twojego dialog boxa: case WM_CTLCOLORSTATIC:{ SetTextColor ((HDC)wParam,RGB(0,0,255)) ; SetBkMode((HDC)wParam,TRANSPARENT); HBRUSH hbrStatic=CreateSolidBrush(RGB(255,0,0)); return (LRESULT) hbrStatic;} Zmienia on kolor tekstu na niebieski i kolor tła na czerwony we WSZYSTKICH staticach będących dziećmi tego dialog boxa. m-rog napisał: Ostatnie pytanie. W jaki sposób wykorzystuje się funkcje DlgDirList w ListBox'ie???? Polecam MSDN, tam są wszystkie funkcje dokładnie opisane. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Riddle Napisano Listopad 27, 2018 Zgłoś Udostępnij Napisano Listopad 27, 2018 1. "OpenFileName" -> Czy może mi ktoś powiedzieć w jaki sposób mam poprawnie uzupełnić strukture OPENFILENAME!!! Mój program składa się z jednego dialog boxu, a menu jest wywoływane OpneFileName. W zmiennych: hwndOwner; hInstance; wpisuje poprawnie uchwyty i okno nie chce się pokazywać. Sądze, że trzeba jeszcze uzupełnić zmienne: lpTemplateName, lCustData, ale nie wiem jak. Prosze o pomoc!! 2. Czy jest jakaś funkcja, która usuwa katalog bez względu na to czy jest pusty??? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Parody Napisano Listopad 27, 2018 Zgłoś Udostępnij Napisano Listopad 27, 2018 Wrzuć kod z openfilename. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Riddle Napisano Listopad 27, 2018 Zgłoś Udostępnij Napisano Listopad 27, 2018 Kod OpenFile: OPENFILENAME ofn ; //lokalna int x = MAKEINTRESOURCE("DIALOGBOX1"); wm_create: ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hdwnd1; //pobierane z MSG dialogbox'a ofn.hInstance= hInst2; //handle dialogbox'a ofn.lpTemplateName= x ; ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 1; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_FILEMUSTEXIST; break; Samo wywołanie funkcji NAPEWNO jest dobre. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Listopad 27, 2018 Autor Zgłoś Udostępnij Napisano Listopad 27, 2018 OPENFILENAME ofn ; //lokalna Jeżeli ta zmienna jest lokalna i nie jest statyczna, to w następnym wywołaniu procedury obsługi wartości, które podałeś w WM_CREATE nie będą już znane. Jeżeli tak samo masz w programie, to dialog OpenFileName nie będzie się otwierał. int x = MAKEINTRESOURCE("DIALOGBOX1"); Tu Ci się po prostu chyba pomyliło, jak przepisywałeś na forum. Makro MAKEINTRESOURCE pobiera identyfikator(liczbowy) kontrolki i zamienia go na ciąg znaków. Ale to nie ma z Twoim głównym problemem żadnego związku raczej. Tak samo jak i punkt następny. ofn.lpTemplateName= x ; To pole i tak jest u Ciebie ignorowane, poniewaz nie dałęś flagi OFN_ENABLETEMPLATE. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Riddle Napisano Listopad 30, 2018 Zgłoś Udostępnij Napisano Listopad 30, 2018 Zmienną OPENFILENAME ofn zmieniłem na statyczną i nadal nie chce działać. Jeśli chodzi o MAKEINTRESOURCE i ofn.lpTemplateName to przeczytałem w msdn2003apr ,że do lpTemplateName musze przypisać nazwe otrzymaną z makeintresource, dlatego właśnie tak zrobiłem. Gdyby miał ktoś pomysł jak zrobić aby uruchomić OpenFileName to prosze napisać na forum (bo ja już nie mam pomysłów) !! Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Aspect Napisano Grudzień 1, 2018 Autor Zgłoś Udostępnij Napisano Grudzień 1, 2018 Wkelj tutaj, albo gdzieś udostępnij, cały kod swojego programu, bo z tego co piszesz to błąd nie wynika ze złego wypełnienia struktury OPENFILENAME, tylko z jakiejś pomyłki, którą popełniłeś w innym miejscu. Tak na "ślepo" trudno jest cokolwiek powiedzieć. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Riddle Napisano Grudzień 2, 2018 Zgłoś Udostępnij Napisano Grudzień 2, 2018 Dzięki "Biały" za pomoc, ale już to zrobiłem, i openfilename już mi (wkońcu) działa. Problem polegał na tym, że mój program nie chciał czytać danych z komunikatów WM_INITDIALOG i WM_CREATE. I tylko na tym polegał kłopot. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.