Savant
-
Postów
0 -
Dołączył
-
Ostatnio
Nigdy
Typ zawartości
Profile
Fora
Kalendarz
Articles
Pliki
Posty napisane przez Savant
-
-
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!! -
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!
-
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 -
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 :-( -
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 -
zrobilem tak:
hwndList = GetDlgItem(hDlg,IDC_LIST2);
SendMessage(hwndList,LB_DIR,(WPARAM) DDL_DRIVES,(LPARAM) TEXT("*.*"));
ale nic sie nie pokazuje... :(
sorrki ze tak mecze!!! -
chodzi mi o to ze jesli mam juz uchwyt listbox'a to jak teraz wyswietlic w nim dyski i katalogi?
-
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 -
Explorator
w C
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. -
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
-
Spróbuj tak:
Kod:
HMENU hMenu = LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1));
i jako 9 parametr podaj hMenu.Niestety tez nie dziala!!! Moze to wina tego ze pracuje na WinXp??
-
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!!!
-
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...
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
Klikanie
w C
Napisano
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