Skocz do zawartości

Savant

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez Savant

  1. Witam...
    chcialbym zrobic cos takiego:
    Jest przykladowo strona jakas w necie i tam jest przycisk pewnien ktory mnie interesuje...jak zrobic aby program ktory pisze klikal co pewien czas w ten wlasnie przycisk..
    ..ostatecznie zeby "klikal" w miejsce wskazywane przez kursor myszki...
    pozdrawiam i prosze o odpowiedz

  2. Ok juz wszystko dziala. Sciezke dostepu pobralem za pomoca GetFullPathName a sciezke przeznaczenia zrobilem w taki sposob:
    w listobxie z wyborem katalogu przeznaczenia (ktorego obsluge sobie zrobilem) wybralem katalog i zapisywalem w zmiennej katalog. potem wystarczylo jedynie:
    strcat(katalgo,TEXT("\\"));
    strcatt(katalog,plik);
    tylko przed tym musialem jeszcze ustawic SetCurrentDirectory(katalog) bo jak tego nie bylo to sie gryzlo z funkcja GetFullPathName. hmm troche dziwne ale to pewnie moj blad w kodzie!!

  3. Witam!Pojawily sie niestety kolejne problemy:
    1) Mam okno dialogowe: "IDD_DIALOG" na tym oknie mam m.in listboxa(uchywt:hList2) w ktorym zapisuje zdarzenia jakie mialy miejsce w programie oraz przycisk "kopiuj" po jego wcisnieciu otwiera sie nowe okno dialogowe:

    DialogBox(hInstance,"IDD_KOPIUJ",hDlg,hKopiujDialog);

    w procedurze okna hKopiujDialog mam przycisk ktory kopiuje wybrany plik z okna "IDD_DiALOG"(ale nie w tym rzecz), chodzi o to ze po nacisnieciu tego przycisku i calej "akcji" kopiowania chce przeslac komunikat do tego mojego listboxa w nadrzednym oknie"IDD_DIALOG":

    SendMessage(hList2,LB_ADDSTRING,(WPARAM)-1,(LPARAM)TEXT("Skopiowano plik"));

    jednak w listboxie nic mi sie nie pojawia. gdy robie to z poziomu okna nadrzednego (tzn.gdzie znajduje sie moj listbox) wszystko dziala prawidlowo!!

    2) dlaczego gdy tworzylem sobie dialogbox'y w zasobach to wszystkie mają styl ustawiony na POPUP? gdy zmieniam na CHild i wywoluje te okna dialogowe to są zamazane i nie mozna w zaden sposob sie do nich dostac a potem jedynie CTRL+ALT+DEL

    3) jak pobrac zawartosc listbox'a i zapisac do pliku ?
    przy pobieraniu robie cos takiego:

    SendMessage(hList2,LB_GETTEXT,(WPARAM)2,(LPARAM)danelog);

    oraz:

    GetDlgItemText(hDlg,IDC_LIST2,danelog,32);

    jednak nie dziala!

  4. Mam problem z funkcja CopyFileEx
    rzecz w tym ze gdy sciezki skad chce jaki plik kopiowac i dokąd wpisuje ze zmiennych np:
    CopyFileEx(szSciezkaWybrana,szSciezkaPrzeznaczenia,.....)
    to juz w programie *.exe wyskakuje mi blad ze: nazwa pliku lub rozszerzenia z dlugie ... czy jakos tak..

    kompiluje sie bez bledu.
    szSciezkaWybrana i szSciezkaPrzeznaczenia jest na 100% dobrze bo sprawdzalem to sobie robiac np.static bara i przeslalem do niego wlasnie szSciezkaWybrana i szSciezkaPrzeznaczenia i pokazywal odpowiednio cos takiego:
    szSciezkaWybrana cos takiego c:\gry\setup.exe a szSciezkaPrzeznaczenia d:\gry\setup.exe
    nie wiem w czym tkwi problem. Gdy robilem sobie normalnie czyli:
    CopyFileEx("d:\\gry\\setup.exe",e:\\gry\\setup.exe",... wszystko bylo dobrze, katalog przeznaczenia tez byl stworzony..
    prosze o pomoc

  5. Mam pytanie:
    Zrobilem sobie program ktory kopiuje plik do jakiegos wybranego katalogu.
    jak zrobic aby progressbar pokazywal jaka czesc pliku sie juz skopiowala?
    I jeszcze jedno.
    utworzylem sobie listboxa w ktorym mam dyski i katalogi i pliki. jednak nie chce aby wyswietlaly mi sie pliki tylko same dyski i katalogi
    robilem to za pomoca LB_DIR ustawiajac flage na DDL_DIRECTORY | DDL_DRIVES ale nie pomoglo :-(

  6. Musisz wysłać do tego okna komunikat LB_DIR, czyli piszesz w kodzie:
    SendMessage(hList,LB_DIR,(WPARAM) flagi,(LPARAM) string formatujący np "*.*");
    Zeby wyswietlic dyski piszesz we flagach DDL_DRIVES.

    wszystko dziala jak nalezy :D ... po prostu obslugiwalem nie ten komunikat...
    dziękuje za odpowiedzi

  7. Mam pytanko!
    Stworzylem sobie okienko dialogowe w zasobach a na tym okienku umiescilem sobie listbox'a. w zasobach ta kontrolka jest zdefiniowana jako IDC_LIST1 102
    teraz mam pytanie:
    jak wpisac cokolwiek do tej kontroli za pomoca SendMessage to znaczy jak uzyskac uchwyt do tej kontrolki? wiem ze mozna to zrobic np w ten sposob:
    hwndlist = CreateWindow(i tutaj wszystkie parametry tej kontrolki) ...
    ...tylko ze ja nie chce tworzyc ten kontrolki bo mam juz ja w zasobach.
    konkretnie chcialbym aby wtej kontrolce byly widoczne dyski i katalogi...
    prosze o pomoc

  8. Chce napisac program w stylu Exploratora Windows.Wobec tego mam pytanie:
    Jak zrobic aby w Polu ListView (w ktorym beda widoczne dyski i katalogi) wyswietlac katalogi a w polu obok (bedzie to editbox) wyswietlac liste plikow w danym katalogu? Z góry dziękuje za każdą pomoc.

  9. oto pliki zrodlowe:
    menu.cpp

    #include<windows.h>
    #include"resource.h"
    
    
    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
    
    TCHAR szAppName[] = TEXT ("Program z Menu") ;
    
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)
    {
         HWND     hwnd ;
         MSG      msg ;
         WNDCLASS wndclass ;
         //HMENU hMenu;
    
         wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
         wndclass.lpfnWndProc   = WndProc ;
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = 0 ;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
         wndclass.lpszMenuName  = MAKEINTRESOURCE(101);
         wndclass.lpszClassName = szAppName ;
    
         if (!RegisterClass (&wndclass))
         {
              MessageBox (NULL, TEXT ("Program wymaga Windows NT!"),
                          szAppName, MB_ICONERROR) ;
              return 0 ;
         }
    
         //hMenu = LoadMenu(hInstance,"IDM_MENU");    //lub MAKEINTRESOURCE(101)
         hwnd = CreateWindow (szAppName, TEXT ("Program wyświetlający menu"),
                              WS_OVERLAPPEDWINDOW,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              NULL, NULL, hInstance, NULL) ;
    
         ShowWindow (hwnd, iCmdShow) ;
         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:
              //TUTAJ BEDA ZNAJDOWALY SIE INSTRUKCJE ODNOSNIE POL MENU
              return 0;
    
         case WM_DESTROY:
              PostQuitMessage (0) ;
              return 0 ;
         }
         return DefWindowProc (hwnd, message, wParam, lParam) ;
    }
    

    resource.h:

    //{{NO_DEPENDENCIES}}
    // Microsoft Developer Studio generated include file.
    // Used by zasoby.rc
    //
    #define IDM_MENU                        101
    #define IDM_OTWORZ_PLIK                 40001
    #define IDM_SPAKUJ                      40002
    #define IDM_ROZPAKUJ                    40003
    #define IDM_USTAWIENIA                  40004
    #define IDM_WLASCIWOSCI                 40005
    #define IDM_KONIEC                      40006
    #define IDM_KOPIUJ                      40007
    #define IDM_WYTNIJ                      40008
    #define IDM_WKLEJ                       40009
    #define IDM_POLSKI                      40011
    #define IDM_ANGIELSKI                   40012
    #define IDM_INFO                        40013
    #define IDM_ABOUT                       40014
    
    // Next default values for new objects
    // 
    #ifdef APSTUDIO_INVOKED
    #ifndef APSTUDIO_READONLY_SYMBOLS
    #define _APS_NEXT_RESOURCE_VALUE        102
    #define _APS_NEXT_COMMAND_VALUE         40015
    #define _APS_NEXT_CONTROL_VALUE         1000
    #define _APS_NEXT_SYMED_VALUE           101
    #endif
    #endif
    

    zasoby.rc

    //Microsoft Developer Studio generated resource script.
    //
    #include "resource.h"
    
    #define APSTUDIO_READONLY_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #include "afxres.h"
    
    /////////////////////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS
    
    /////////////////////////////////////////////////////////////////////////////
    // Polish resources
    
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PLK)
    #ifdef _WIN32
    LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
    #pragma code_page(1250)
    #endif //_WIN32
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Menu
    //
    
    IDM_MENU MENU DISCARDABLE 
    BEGIN
        POPUP "&Akcja"
        BEGIN
            MENUITEM "&Otwórz Plik ...",            IDM_OTWORZ_PLIK
            MENUITEM "&Spakuj",                     IDM_SPAKUJ
            MENUITEM "&Rozpakuj",                   IDM_ROZPAKUJ
            MENUITEM SEPARATOR
            MENUITEM "&Ustawienia",                 IDM_USTAWIENIA
            MENUITEM "&Właściwości Pliku ...",      IDM_WLASCIWOSCI
            MENUITEM SEPARATOR
            MENUITEM "&Koniec",                     IDM_KONIEC
        END
        POPUP "&Edycja"
        BEGIN
            MENUITEM "&Kopiuj",                     IDM_KOPIUJ
            MENUITEM "&Wytnij",                     IDM_WYTNIJ
            MENUITEM "&Wklej",                      IDM_WKLEJ
        END
        POPUP "&Pomoc"
        BEGIN
            POPUP "&Język Programu"
            BEGIN
                MENUITEM "&Polski",                     IDM_POLSKI, CHECKED
                MENUITEM "&Angielski",                  IDM_ANGIELSKI
            END
            MENUITEM "&Informacje o Autorze",       IDM_INFO
            MENUITEM "&About ...",                  IDM_ABOUT
        END
    END
    
    
    #ifdef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // TEXTINCLUDE
    //
    
    1 TEXTINCLUDE DISCARDABLE 
    BEGIN
        "resource.h\0"
    END
    
    2 TEXTINCLUDE DISCARDABLE 
    BEGIN
        "#include ""afxres.h""\r\n"
        "\0"
    END
    
    3 TEXTINCLUDE DISCARDABLE 
    BEGIN
        "\r\n"
        "\0"
    END
    
    #endif    // APSTUDIO_INVOKED
    
    #endif    // Polish resources
    /////////////////////////////////////////////////////////////////////////////
    
    
    
    #ifndef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 3 resource.
    //
    
    
    /////////////////////////////////////////////////////////////////////////////
    #endif    // not APSTUDIO_INVOKED
    
    
  10. A weź sobie spróbuj w Visualu utworzyc nowy projekt (Win32 Application), tylko nie pusty, ale zeby to bylo "Typical "Hello World" Project" dla VC++ 6.0, lub nie "Empty Project" dla VC++ .NET . One maja już szkielet gotowej aplikacji razem z menu.
    Możesz też wkleić tu kod swojego programu - może problem polega na czym innym.

    tak , w ten sposob dziala!!!

  11. Mam problem z menu w programiku ktory tworze w VC++. Tworze sobie menu tak jak jest to pokazane w książce Petzold'a Programnomwanie Windows - program sie kompiluje ale wyswietla mi sie samo okno bez menu...
    menu zapisuje sobie w pliku zasobow...potem przy wywolaniu CreateWindow jako dziewiaty argument podaje MAKEINTRESOURCE(id_mojego menu) ale to i tak jest zle!! :(
    Próbowalem tez z szMenuName oraz pobierajac uchwyt menu ... niestety to samo... :ph34r:
    gdy kompiluje przykladowe programy sciagniete z sieci robi sie to samo... czy jest to wina zlych ustawien kompilatora...
    uzywam Visual C++ 6.0 i Borland Builder C++ 6.0

×
×
  • Utwórz nowe...