
Storm
Członkowie-
Postów
0 -
Dołączył
-
Ostatnio
Nigdy
Storm's Achievements
Newbie (1/14)
0
Reputacja
-
Ja bym zamiast petli while obslugiwał komunikaty od Timera i w ten sposob co jakis czas poruszał zającami itp. Nie było by problemu z odbiorem innych komunikatów. A tak u ciebie nie są pewnie pobierane kolejne komunikaty bo cały czas jest obsługiwany ten jeden tj. wybranie z menu "Simulat".Jego obsługa to pewnie ta nieskończona pętla,więc się nie skończy i dlatego inne komunikaty nie są obsługiwane..Przynajmniej tak mi się wydaje.Ale moge się mylić. Pozdrawiam.
-
Jest to funkcja o dowolnej liczbie argumentów jak printf w C. Pozdro
-
Jest to funkcja o dowolnej liczbie argumentów jak printf w C. Pozdro
-
Witam troszke przerobilem twoj kod powinno byc ok //--------------------------------------------------------------------------- #include <windows.h> #include <stdio.h> #include <stdarg.h> #define MAX_KEY_LENGTH 255 #define MAX_VALUE_NAME 16000 #define MAX_PATH 16000 //--------------------------------------------------------------------------- int MessageBoxPrintf(CHAR * szCaption,CHAR * szFormat, ...) { va_list wsk_na_liste_arg; CHAR bufor[1024]; va_start(wsk_na_liste_arg,szFormat); _vsnprintf(bufor,sizeof(bufor),szFormat,wsk_na_liste_arg); va_end(wsk_na_liste_arg); return MessageBox(NULL,bufor,szCaption,0); } //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // HKEY hKey; if( RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\jajo",0,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS ) { TCHAR achKey[MAX_KEY_LENGTH]; // buffer for subkey name DWORD cbName; // size of name string TCHAR achClass[MAX_PATH] = TEXT(""); // buffer for class name DWORD cchClassName = MAX_PATH; // size of class string DWORD cSubKeys=0; // number of subkeys DWORD cbMaxSubKey; // longest subkey size DWORD cchMaxClass; // longest class string DWORD cValues; // number of values for key DWORD cchMaxValue; // longest value name DWORD cbMaxValueData; // longest value data DWORD cbSecurityDescriptor; // size of security descriptor FILETIME ftLastWriteTime; // last write time DWORD i, retCode; TCHAR achValue[MAX_VALUE_NAME]; DWORD cchValue = MAX_VALUE_NAME; // Get the class name and the value count. if( (retCode = RegQueryInfoKey( hKey, // key handle achClass, // buffer for class name &cchClassName, // size of class string NULL, // reserved &cSubKeys, // number of subkeys &cbMaxSubKey, // longest subkey size &cchMaxClass, // longest class string &cValues, // number of values for this key &cchMaxValue, // longest value name &cbMaxValueData, // longest value data &cbSecurityDescriptor, // security descriptor &ftLastWriteTime) // last write time )==ERROR_SUCCESS) { //RegCloseKey(hKey); int liczba = (int) cValues; LPCTSTR ile; LPCTSTR tresc; for (int i=0;i<liczba;i++) { cchValue = MAX_VALUE_NAME; achValue[0] = '\0'; retCode = RegEnumValue(hKey, i, achValue, &cchValue, NULL, NULL, NULL, NULL); MessageBox(NULL,achValue,"info",MB_OK); } //ile = liczba + "adas"; //MessageBox(NULL,ile,"Ile",MB_OK); MessageBoxPrintf("Ile","Znaleziono %d wartosci",liczba); } RegCloseKey(hKey); } return 0; } //--------------------------------------------------------------------------- Pozdrawiam
-
Witam Uwazam,ze nie jest dobrym pomyslem czytanie ikonki z pliku,bo zawsze plik,ktos moze usunac,lepjej ja dodac do zasobow,wtedy sie wkompiluje w execa.Nie jest to trudne. W Visualu wybierz Project->Add Resource Wybierz Icon nastepnie Import Pojawi ci sie okienko gdzie mozesz wyszukac swoj plik *.ico Po wskazaniu pliku i wybraniu open ikonka doda sie do zasobow. Jak obejrzec zasoby? W Visualu wybierz View->Resource View Tam masz takie drzewko zasobow(nazwa_pliku.rc) Wybierz z niego Icon Powinno ci sie dodac tam ikonka Bedziesz widział w tym drzewku jej identyfikator zapewne IDI_ICOIN1 Teraz wystarczy wpisac w programie zamiast wndclass.hIcon = LoadIcon(NULL, IDI_WINLOGO); to wndclass.hIcon = LoadIcon (hInstance,MAKEINTRESOURCE(IDI_ICON1)); Pozdrawiam.
-
Bo ja podałem adres ktory mozesz wpisac,gdy uzywasz klienta ftp(np Total Comander ma takowego),a codeguy podal link,z ktorego mozna sie dostac na serwerek przez przegladarke. Dla mnie wygodniejszy jest ten pierwszy sposob. Pozdrawiam
-
Ja bym powiedział konstruktorem klasy,której obiekt zdefiniowano globalnie.Bo definicja klasy moze być na zewnątrz main'a,ale konstruktor pracuje dopiero gdy jest tworzony obiekt.Więc chodzi o obiekt danej klasy nie klasę(klasa to typ).
-
Nie wiem czy o to ci chodzi?Czy chodzi o to aby instrukcje zawarte w konstruktorze były wykonane przed pierwszą instrukcją programu? Jeżeli tak to wystarczy obiekt danej klasy zadeklarować globalnie. Przykład #include<iostream> using namespace std; //--------------------------------------------------------------------------- class klasa { public: klasa() ; //konstruktor }; //--------------------------------------------------------------------------- klasa::klasa() { cout << "Jestem konstruktorem" <<endl; } //---------------------------------------------------------------------------- klasa obiekt; //definicja zmiennej globalnej int main() { cout << "Pierwsza instrukcja"<<endl; cin.get(); return 0; } //--------------------------------------------------------------------------- Pozdrawiam
-
Mialem namysli Richtera wlasnie,ale gdzies mi wcielo tytul. Jak przeczytam Petzolda to sobie na pewno kupie albo pozycze od kumpla.Ale to jeszcze troche potrwa Pozdrawiam.
-
Witam W swoim programie zmień linie klasaokna.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); na klasaokna.lpszMenuName = "Menu"; A co do przykładów to pare topików temu ktoś podawał adres serwerka ftp host: ftp.winapi.org Można się logować anonimowo. Off topic: Dzięki dobrzy ludzie za te przykłady na pewno się przydadzą. Pozdrawiam
-
Dzięki Zrobilem to jednak na okienku dialogowym bo tak jest jednak prościej.A angielski znam na tyle,ze jak trzeba to sobie poradze. Pozdrawiam.
-
Witam Mam taki problemik.Chciałem wyświetlić MessageBoxa który niezaleznie od wersji system(angielska,polska) wyświetli mi napisy w klawiszach po polsku(czyli TAK NIE zamiast YES NO).Chcialem uzyc funkcji MessageBoxIndirect opisanej tu https://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/messageboxindirect.asp ale napisy w klawiszach caly czas sa wyswietlane po angielsku.Używam angielskiej wersji systemu(xp). Co robie nie tak? const MSGBOXPARAMS MsgBoxParams= { sizeof(MsgBoxParams), NULL, NULL, "Czy na pewno chcesz wyjść ?", "Edytor Plansz", MB_YESNO | MB_ICONQUESTION, NULL, NULL, NULL, MAKELANGID(LANG_POLISH,SUBLANG_DEFAULT) }; //obsługa komunikatu WM_CLOSE CASE WM_CLOSE: if(IDYES==MessageBoxIndirect(&MsgBoxParams)) DestroyWindow(hwnd); return 0; Z góry dzięki za odpowiedź. Pozdrawiam
-
Dzieki wszystkim za odpowiedzi,szczegolnie dla Spoona za podanie nazwy funkcji. Pozdrawiam
-
No wiec tak sprawa wyglada tak,ze kumpel zmienil sobie rozdielczosc na zbyt wysoka i nic nie widział na ekranie,ktos mi podal link do programu z mieniajacego rozdielczosc(mozna go np wrzucic do autostartu lub rejestru w trybie awaryjnym, program robi to co ma robic).Wiec problem rozwiazany.Ale nie wiem jak on dziala bo nie mam zrodla.A jestem ciekaw w jaki sposob on zmienia rozdielczosc. Pozdrawiam
-
Witam! Znacie może funkcje zmienjającą rozdielczość ekranu? Z góry dzięki. Pozdrawiam.