Skocz do zawartości

Aspect

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wszystko napisane przez Aspect

  1. Aspect

    Sprostowanie

    Zgadzam sie z przedmowca - posprawdzaj sobie co NAPRAWDE znajduje sie w poszczegolnych zmiennych, sproboj odegrac dzwiek wpisujac do sndPlaySound "na sztywno" nazwe z pelna sciezka do jakiegos pliku, ktory wiesz, ze na pewno istnieje. Sproboj tez te kilka linijek, w ktorych zapisujesz nazwe do wav zamienic taka: sprintf(wav,"%s%c%s",sciezka,wczytaj[i],sciezka2); moze to cos zmieni.
  2. Aspect

    toolbar

    No to mamy podobne zdania :). Ja tez lubie "Wiżuala" i też uważam, że jest dużo leszy od Dev (dowodem na to moze byc brak zdefiniowania tych stałych), ale staram się nie uzależniać od jednego środowiska ;-). Bawie sie tym wszystkim na razie i sprawdzam sobie rozne zabawki :). Trudno sie tez spodziewac, zeby darmowy produkt byl lepszy od produktu, za za ktory placi sie niemala kaske - takie sa prawa rynku :? .
  3. Aspect

    toolbar

    Z kompilatorem to podejrzewam, że nic wspólnego nie ma, ale jak porównałem plik commctrl.h, którego używa Dev z tym, który używa Microsoft Development Studio .NET, to okazało się, że w tym z Dev-Cpp nie ma zdefiniowanych niektorych stalych np. TB_SETIMAGELIST.
  4. Wystarczy, ze wywolasz funkcje ShowWindow z parametrem SW_MAXIMIZE.
  5. Aspect

    Re: XP Themes

    Właśnie o to mi chodziło!!! Teraz (po wywołaniu InitCommonControls) wszystko pieknie dziala. Dziekuje za rozwiazanie mojego problemu.
  6. No to chyba sie pochlastam, bo mi nei dziala ani z najnowsza wersja Dev ani z manifestami ;). Moze oprocz zwyklego dodania jednej linijki do pliku .rc cos jeszcze zrobiliscie. Czy moglbym prosic o przykladowy programik na maila? "Odkrylem" wlasnie ze w Dev nie trzeba nic recznei wklepywac - wystarczy tylko w opcjach projektu zaznaczyc pole "Support Windows XP Themes" i juz manifesty sie same dodaja:). Co nie zmienia faktu, ze moje dialog-boxy sa nadal niewidzialne ;). Dobra. Doszedlem do wniosku, ze to wina mojego kompa/ustawien WinXP. Na drugim komputerze (Win95) dialog-boxy sa widoczne (ale rzeczjasna nie maja wygladu XP   ).
  7. Aspect

    toolbar

    Bardzo dziękuję! Nie spodziewałem się, ze tak szybko dostanę tak wyczerpującą odpowiedź. Dodam jeszcze tylko, że jeśli ktoś chce użyć załączonego kodu w Dev-Cpp, to musi sobie zamienić następujące identyfikatory: TBSTYLE_FLAT na 2048 (choc wyglada, ze jest to zalezne od wersji Internet Explorera) TB_SETMAXTEXTROWS na WM_USER + 60 TB_SETIMAGELIST na WM_USER + 48. U mnie bez tego nie dzialalo. Sprawdzilem commctrl.h w Dev. Nie ma tam zdefiniowanych identyfikatorow TB_SETMAXTEXTROWS, TB_SETIMAGELIST :(. Chyba powroce jednak do starego, dobrego "Wiżuala" ;-). Hurra!!! Mozna zmieniac posty :). Chcialem jeszcze dodac, ze zeby program zadzialal to trzeba "dolinkowac" comctl32.lib (w VC++) lub libcomctl32.a (w Dev-Cpp) do projektu.
  8. Po przeczytaniu artykułu/lekcji na temat dostosowania aplikacji do WinXP, od razu poczułem nieodpartą potrzebę aby moje programy (pisane pod Dev-Cpp) także miały taki "pienkny" wygląd ;-). Podejrzałem więc jakie zmiany zachodzą w pliku .rc po dodaniu do zasobow XMLa i okazało się, że została dodana tylko jedna (znacząca) linijka: 1 24 DISCARDABLE "plik.xml" Niestety, po dodaniu jej do pliku zasobow w Dev, i skompilowaniu moje okienka dialogowe, a nawet MessageBoxy przestaly sie pojawiać. I oto, w końcu, moje pytanie: Czy ktoś już się tym bawił w Dev i wie może co żle zrobiłem, albo czego jeszcze nie zrobiłem? (Od razu mowie, ze plik ma taka sama nazwe jak jest napisana w pliku zasobow, sciezka jest prawidlowa, a zawartosc pliku .xml jest IDENTYCZNA z ta w artykule. Ponadto: przy kompilacji nie wychodza zadne bledy, ani ostrzezenia, tylko po prostu po kliknieciu na pozycje menu wywolujaca dany Dialog albo MesssageBox NIC sie nei dzieje - a bez w/w linijki się działo ;-) ) Z góry dziękuję za wyczerpujące odpowiedzi. Pozdrawaim.
  9. Nie, to jest wszystko proste, tylko ja tak zamieszalem - sorry. Oto przykladowy kod o ktory prosiles, moze bardizej Ci pomoze. W razie jak bys nie wiedzial co robia niektore funkcje to sobie poczytaj o nich na stronei https://msdn.microsoft.com/library/. No dobra, daje juz ten kod: Plik .rc: #include <windows.h> #include "resource.h" IDM_MAIN MENU { POPUP "Program" { MENUITEM "Okno dialogowe",IDM_DIALOG MENUITEM SEPARATOR MENUITEM "Zamknij",IDM_CLOSE } } IDD_DIALOGBOX DIALOGEX 0, 0, 240, 80 STYLE DS_CENTER | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX CAPTION "Dialog Box" FONT 8, "MS Sans Serif", 0, 0, 0x0 { LTEXT "To jest przykladowy DialogBox.",IDC_STATIC,10,11,120,11,SS_NOPREFIX DEFPUSHBUTTON "OK",IDOK,180,10,50,15,WS_GROUP PUSHBUTTON "Cancel",IDCANCEL,180,27,50,15 } Plik resource.h: #define IDC_STATIC -1 #define IDM_DIALOG 100 #define IDM_CLOSE 101 W pliku .cpp musisz zamienic linie: wincl.lpszMenuName = NULL; na wincl.lpszMenuName = "IDM_MAIN"; . Do funkcji WindowProcedure dodaj: case WM_COMMAND: switch(LOWORD(wParam)) { case IDM_DIALOG: DialogBox(GetModuleHandle(NULL),"IDD_DIALOGBOX",hwnd,(DLGPROC)DialogProcedure); break; case IDM_CLOSE: PostMessage(hwnd,WM_CLOSE,0,0); break; } , i do calego kodu dodaj jeszcze funkcje: LRESULT CALLBACK DialogProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hdlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; } Mam nadziueje, ze bedzie dzialac. Powodzenia.
  10. Aspect

    Sprostowanie

    Kurna, powinniscie dac jednak mozliwosc edycjo postow. Te dwie linijki powinny wygladac tak: char* p; p=&(char)wczytaj;
  11. He he... nie ma sprawy...;-) A tak serio. Sorki, ze nie udalo mi sie rozwiazac Twojego problemu, ale mialem wrazenie, ze wynikiem Twojego kodu i tak bedzie dopisanie calego stringa wyniki do stringa wav. Sproboj w takim razie dodac przed lina 14 takie dwie linijki kodu: char* p; p=&wczytaj; a w linii 14 daj p zamiast wczytaj. Mam nadzieje ze teraz udalo mi sie choc troszke pomoc Ci w rozwiazaniu problemu ;-). Powodzenia!
  12. Przepraszam za drugiego posta pod rzad, ale nie mozna edytowac juz napisanych postow :[. Piszac "ten plik naglowkowy" mialem na mysli plik naglowkowy .h, ktory sam sobie tworzysz, a nie windows.h oczywiscie.
  13. Hmmm... No ja Ci powiem, ze u mnie to dzialalo bez zadnego includa w pliku .cpp (natomiast do pliku .rc, czyli tego, w ktorym wklepujesz wyzej napisany kod warto dodac #include <windows.h> ;-) ). Jezeli chodzi o ten plik naglowkowy, to zazwyczaj uzywa sie go, aby identyfikatory zasobow (ktore sa zwyklymi wartosciami liczbowymi) zdefiniowac tak, zeby potem latwiej bylo ich uzyc w programie. Na przyklad wklepujesz tam linie: #define MENU_PLIK_OTWOZ 100 i juz nie musisz pamietac, ze pozycja menu Plik->Otworz ma przypisany numer 100, a jedynie, ze ma identyfikator MENU_PLIK_OTWORZ, ktory sobie juz spokojnie uzywasz w programie. Ten plik naglowkowy nalezy wtedy dolaczyc zarowno do pliku .cpp jak i .rc.
  14. W Dev (w przeciwieństwie do Visual Studio czy Borland Buildera) wszystkie zasoby musimy niestety wklepywac recznie (chyba, ze o czyms nie wiem i w takim wypadku prosze o szybkie sprostowanie). Wyglada to mniej wiecej tak: 1. Tworzysz nowy projekt (lub otwierasz stary ;-) ) 2. Wyberasz z menu File New a potem Resource File (pojawia sie nowy czysciutki plik) 3. W tym pliku wklepujesz kod DialogBoxa, ktory mniej wiecej wyglada tak: IDENTYFIKATOR /*bedziesz go potem uzywal w funkcji tworzacej dialog*/ DIALOGEX /*teoretycznie mozna uzyc zamiast tego DIALOG, ale DIALOGEX ma wiecej mozliwosci*/ POZYCJAX,POZYCJAY,ROZMIARX,ROZMIARY /*polozenie i rozmiar dialogboxa*/ STYLE /*po tym znaczniku umieszczasz rozne identyfikatory stylow okna oddzielona znakiem |. Przykladowe identyfikatory to: DS_SYSMODAL | DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_VSCROLL | WS_SYSMENU | WS_THICKFRAME*/ EXSTYLE /*style rozszerzone, np.:WS_EX_PALETTEWINDOW | WS_EX_LEFTSCROLLBAR | WS_EX_APPWINDOW*/ CAPTION "Tytul okna DialogBoxa" /*nie trzeba tlumaczyc*/ MENU IDENTYFIKATOR_EWENTUALNEGO_MENU FONT /*czcionka jaka ma byc wyswietlana w dialogboxie, np.: 8, "MS Shell Dlg", 400, 0, 0x1*/ {*/w tym miejscu wprowadzasz kontrolki dialogboxa, np.:*/ PUSHBUTTON "OK",IDOK,10,10,50,15 /*zwykly przycisk*/ } Nastepnie w kodzie programu wywolujesz jaks funkcje tworzaca DialogBoxa (np DialogBox w ktorej drugim parametrem jest wlasnie nasz identyfikator), definujesz funkcje obslugi komunikatow i w ten oto prosty sposob masz DialogBoxa. Powodzenia! W razie jakichkolwiek watpliwasci albo bledow od razu pisz(cie).
  15. Rozumiem, że chcesz wylosować liczbę z przedziału np. 65-112? Przyjmujac, ze a - poczatek przedzialu i b - koniec przedzialu, szukana przez Ciebie wartosc moze byc obliczona w nastepujacy sposob: x=rand()%(b-a) + a;//rand nei pobiera zadnych parametrow, % to operacja modulo (reszta z dzielenia) Sproboj przesunac te operacje za petle for i wywal z neij to "". Wtedy wczytaj bedzie wskaznikiem na CALY string i funkcja strcat() doda CALY string NA RAZ (a nie po kolei kazdy znak) ;-). A jeszcze do tematu: char jest po prostu wartoscia z przedzialu 0..255, a to ze zostaje czasem wyswietlony jako literka jest juz zasluga funkcji, które to robią.
  16. Aspect

    toolbar

    Czy ktos wie moze jak stworzyc i dodac do okna toolbar w czystym WinAPI? Za odpowiedz z gory dziekuje.
×
×
  • Utwórz nowe...