McAffey Temat założony przez niniejszego użytkownika |
[WinAPI] Polecenie CONTROL - tekst ze zmiennej we własnym oknie dialogowym » 2014-03-16 15:42:00 Witajcie. Tworzę własne okno dialogowe, w którym używam polecenia CONTRL do wpisywania tekstu i chciałbym żeby po uruchomieniu znajdowała się tam wartość ze zmiennej, jednak nie wiem jak to uzyskać. Schemat polecenia CONTRL wygląda tak : CONTROL text, id, klasa, style, x, y, szerokosc, wysokosc [, style-rozszerzone] u mnie to konkretnie wygląda tak : CONTROL "100", IDC_MAX_NUMBER_OF_LINES, "Edit", WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 22, 20, 14 tylko nie wiem jak zastąpić stałą dosłowną "100" wartością ze zmiennej (np. pobranej z pliku). Pierwszy raz się z tym spotykam i nie udało mi się tego wydedukować z materiałów które znalazłem na internecie, więc będę wdzięczny za wytłumaczenie jak to zrobić :) |
|
Admixior |
» 2014-03-17 02:24:16 Z tego co widzę to to okno dialogowe nie jest tworzone w C++ tylko poprzez zasoby aplikacji (np. rozszerzenie *.rc)
Tutaj nie da rady dodać ładowania z pliku ze względu na to że ten kod jest przetwarzany w procesie linkowania (lub kompilacji). I zasoby jako tako nie wykonują się same, są one tylko danymi które nasz program będzie potrzebować.
Zmianę tekstu musisz zrealizować w kodzie c++, np. tuż po otwarciu okna za pomocą funkcji "GetDlgItem" pobierasz uchwyt, po czym ustawiasz tekst np. za pomocą funkcji SetWindowText. |
|
McAffey Temat założony przez niniejszego użytkownika |
» 2014-03-18 03:54:52 Hmm, wciąż nie rozwiązałem. W case WM_COMMAND: , po naciśnięciu przycisku if(( HWND ) lPar == SettingsButton ) tworzę dialog w ten sposób DialogBox( GetModuleHandle( NULL ), MAKEINTRESOURCE( 666 ), hwnd, SettingsDialogProcedure ); a w następnej linijce próbuję zmienić wartość np. tak : HWND hDlg = FindWindow( NULL, "Settings" ); HWND DlgItem = GetDlgItem( hDlg, IDC_MAX_NUMBER_OF_LINES );
SetDlgItemText( DlgItem, IDC_MAX_NUMBER_OF_LINES, "test" ); SetWindowText( DlgItem, "test2" ); ale to nie działa. Co robię źle ? |
|
Adik80 |
» 2014-03-18 13:22:51 DialogBox tworzy okienko modalne, czyli program stoi na tej funkcji az do zamkniecia dialogu, czyli szukanie controlki robisz na zniszczonym oknie. Zamaist DialogBox mozesz sprobowac uzyc CreateDialog, potem pozmieniac parametry i wywoalc ShowWindow |
|
McAffey Temat założony przez niniejszego użytkownika |
» 2014-03-25 05:29:53 Sorki że dopiero teraz piszę odpowiedź, zrobiłem tak jak pisałeś i dokładnie o to chodziło, dzięki :) |
|
« 1 » |