Skocz do zawartości

Wyvern

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wyvern's Achievements

Newbie

Newbie (1/14)

0

Reputacja

  1. Witam. Co zrobic, zeby program w Win32API startowal w trybie "Full Screen". Probowalem kombinowac przy stylach klasy okna i przy moim CreatWindow: hwnd = CreateWindow(szAppName, NULL, WS_OVERLAPPEDWINDOW | WS_MAXIMIZE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, szCmdLine); i zawsze uruchamia sie w oknie o domyslnych rozmiarach - gdzies na srodku ekranu. Jak spowodowac, zeby program uruchamial sie w trybie zmaksymalizowanym ??? PS. Aplikacja SDI, uzywam MSDev6. Pozdrowienia.
  2. Mam problem z osadzeniem w oknie dialogowym dowolnej kontrolki ActiveX. Po osadzeniu dowolnej zarejestrowanej kontrolki w oknie dialogowym (okno tworzone wizualnie jako resource) - kompilacja przebiega prawidlowo, a po wywolaniu danego dialogu (np. z menu), okno to nie pokazuje sie (ze standardowymi kontrolkami dziala bez problemu). Uzywam MS Dev 6 z Resource w którym tworze dialog, reszta to czyste API - Nie uzywam MFC. Prosze o pomoc.
  3. Zwracam sie z prosba o pomoc w rozwiazaniu meczacego mnie od jakiegos czasu problemu. Sprawa polega na tym, iz usiluje napisac klase, ktora odpowiedzialna bedzie za przetwarzanie tablic typu int, zawierajacych bardzo duze liczby calkowite zapisane w sposob sekwencyjny np. takie: int tab1[] = {1,2,3,4,5,6,7,8}; int tab2[] = {2}; Teraz np. tab1[3] bedzie mialo wartrosc 4 - i tak tez konstruktor alokuje te dane w tych tablicach typu int (cyfra po cyfrze), wczesniej otrzymujac jako parametr wejsciowy przy deklaracji/inicjacji obiektu ciag znakow char* reprezentujacy duza cyfre np. KlasaDuzaCalkowita obiekt1("123450000000000000000000"); UPROSZCZONY KOD KONSTRUKTORA: DuzaCalkowita::DuzaCalkowita(const char *napis) //definicja konstruktora kopiującego. { int i,j; int dlg = strlen(napis); for(i=0; i<=MAX-1; i++) intTablica=0; //inicjacja zm. skladowej - tab. przechowujacej liczbe (wypelnianie zerami). for(i=MAX-dlg; i<=MAX-1; i++) // MAX, to stała - maksymalna wielkosc tablicy intTablica - składowej. intTablica = napis-'0'; // lub: if(intTablica != '0') { intTablica = napis; } } Jak widac, dzieki takiemu zapisowi liczby moga byc bardzo duze (tutaj maksymalnie o wielkosci tablicy intTablica - w tym przykladzie MAX). Skadową klasy jest wiec taka tablica, w ktorej kazdy z obiektow przechowuje swoja "duza liczbe". Klasa dokonuje wszystkich podstawowych operacji arytmetycznych (np. obiekt1 = obiekt2 + obiekt3) dzieki przeciazonym operatorom dla tych obiektow np. KlasaDuzaCalkowita obiekt1("1234"), obiekt2("2222"), obiekt3; obiekt3 = obiekt1 + obiekt2; I taka prosta operacja arytmetyczna odbywa sie w przeciazonym operatorze dodawania mniej-wiecej tak jak dodawanie w slopku wiec: obiekt1: 1234 obiekt2: 2222 obiekt3: 3456 UPROSZCZONY KOD PRZECIAZONEGO OPERATORA DODAWANIA:DuzaCalkowita DuzaCalkowita::operator+(const char *napis) { KlasaDuzaCalkowita pom, prawy(napis); int przeniesienie=0; for(int i=MAX-1;i>=0;i--) //iteracja dodawania. { pom.intTablica = intTablica+prawy.intTablica+przeniesienie; if(pom.intTablica > 9) { pom.intTablica = pom.intTablica%10; przeniesienie=1; } else przeniesienie=0; } return pom; } Gdzie tkwi problem!!! Mimo usilnych staran, nie wpadlem jeszcze na odpowiednio wydajny sposob przeciazenia operatora dzielenia ' / '. Probowalem dokonac tego na rozne sposoby, ale albo dzialalo zbyt wolno, albo generowalo bledne wyniki. Dlatego bardzo prosze o pomoc w rozwiazaniu problemu dot. przeciazonego operatora dzielenia ' / ', ktory bedzie dzialal na ww. zasadach. Moje podejscie do sprawy: [mamy sytulacje: obiekt1/obiekt2]. - oszacowac dlg. obiektu po lewej i po prawej stronie dzialania, co pozwoli oszacowac dlugosc wyniku, - badanie ile razy obiekt2 zmiesci sie w obiekcie1 (tu tkwi problem - mozna to zrobic nawet na zasadzie dzielenia w slupku - tak jak powyzsze dodawanie, ale chyba nie uniknie sie wtedy rekurencji) - zwrocenie wyniku przez funkcje przec. operatora ' / '. Dziekuje za doczytanie tego listu az do tego mometu i bardzo prosze o przeslanie ewentualnych propozycji rozwiazania tego problemu pod adres: przemek-michalski@wp.pl , za wszelka pomoc dziekuje. PS. Uzywam VC++ 6 (kalsa jest pisana w ANSI/ISO C++). Przepraszam za list w formacie HTML.
×
×
  • Utwórz nowe...