Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Zdziwiony

[WinAPI] Jak pobrać wyraz z TextBoxa ?

Rekomendowane odpowiedzi

Witam mam do Was pytanie: Jak pobrać znak z TextBoxa ? Mam taki kod, który się nie komplinuje ;/

:

#include <windows.h>
#include "tlo.h"

LPSTR NazwaKlasy = "Klasa Okienka";
MSG Komunikat;
HWND g_hPrzycisk;
HWND g_hPrzycisk2;
HWND g_hPrzycisk3;
HDC kon;
PAINTSTRUCT ps;
HINSTANCE hInstance;

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );

int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow )
{
hInstance = hInst;
   // WYPEŁNIANIE STRUKTURY
   WNDCLASSEX wc;
   wc.cbSize = sizeof( WNDCLASSEX );
   wc.style = 0;
   wc.lpfnWndProc = WndProc;
   wc.cbClsExtra = 0;
   wc.cbWndExtra = 0;
   wc.hInstance = hInstance;
   wc.hIcon  = LoadIcon(hInstance,MAKEINTRESOURCE(511));
   wc.hCursor = LoadCursor( NULL, IDC_ARROW );
   wc.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
   wc.lpszMenuName = NULL;
   wc.lpszClassName = NazwaKlasy;
   wc.hIconSm = LoadIcon(hInstance,MAKEINTRESOURCE(511));
// REJESTROWANIE KLASY OKNA
   if( !RegisterClassEx( & wc ) )
   {
       MessageBox( NULL, "Nie zarejstrowano klasy okna!", "Error!",
       MB_ICONEXCLAMATION | MB_OK );
       return 1;
   }

   // TWORZENIE OKNA
   HWND hwnd;
   HMENU hMenu = LoadMenu( hInst, MAKEINTRESOURCE( 200 ) ); //MENU
   hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "Pierwszy launcher", WS_OVERLAPPEDWINDOW ^( WS_MAXIMIZEBOX | WS_SIZEBOX ),
   CW_USEDEFAULT, CW_USEDEFAULT, 500, 350, NULL, hMenu, hInstance, NULL );

   //Pole tekstowe
   HWND nick = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 1, 30, 150, 25, hwnd, NULL, NULL, NULL);

   // przyciski
   g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "Graj!", WS_CHILD | WS_VISIBLE,
   1, 70, 255, 30, hwnd, NULL, hInstance, NULL );

   //
   g_hPrzycisk3 = CreateWindowEx( 0, "BUTTON", "Strona WWW serwera", WS_CHILD | WS_VISIBLE,
   340, 270, 150, 25, hwnd, NULL, hInstance, NULL );
   //koniec (przyciski)

   if( hwnd == NULL )
   {
       MessageBox( NULL, "Wystąpił błąd podczas uruchamiania aplikacji!", "Błąd!", MB_ICONEXCLAMATION );
       return 1;
   }

   ShowWindow( hwnd, nCmdShow ); // Pokaż okienko...
   UpdateWindow( hwnd );

   // Pętla komunikatów
   while( GetMessage( & Komunikat, NULL, 0, 0 ) )
   {
       TranslateMessage( & Komunikat );
       DispatchMessage( & Komunikat );
   }
   return Komunikat.wParam;
}

// OBSŁUGA ZDARZEŃ
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
   switch( msg )
   {
   case WM_CLOSE:
       DestroyWindow( hwnd );
       break;

   case WM_DESTROY:
       PostQuitMessage( 0 );
       break;

   case WM_COMMAND:
   //
  if(( HWND ) lParam == g_hPrzycisk )
  system("java -jar minecraftlauncher1.6.jar C:\\foldermc" + nick + "1.6.4-Forge 600 800");
   //
   break;

       case WM_CTLCOLORDLG:
       //case WM_CTLCOLORLISTBOX:
       //case WM_CTLCOLOREDIT:
       case WM_CTLCOLORSTATIC:
               SetBkMode((HDC)wParam, TRANSPARENT);
               return (LRESULT)::GetStockObject(NULL_BRUSH);

       case WM_PAINT:
               HBITMAP hBmp;
               hBmp = LoadBitmap ( hInstance, (LPCSTR)"IDB_BITMAPA" ); // tlo
               HDC hdcScreen, hdc;
               hdcScreen = GetDC ( GetDesktopWindow() );
               hdc = CreateCompatibleDC ( hdcScreen );
               ReleaseDC ( GetDesktopWindow(), hdcScreen );
               SelectObject ( hdc, hBmp );

               BITMAPINFOHEADER bmi;
               memset(&bmi, 0, sizeof(bmi));
               bmi.biSize = sizeof(BITMAPINFOHEADER);
               GetDIBits(hdc, hBmp, 0, 1, NULL, (BITMAPINFO *)&bmi,  DIB_RGB_COLORS);

               PAINTSTRUCT ps;
               BeginPaint ( hwnd, &ps );
               BitBlt ( ps.hdc, 0, 0, bmi.biWidth, bmi.biHeight, hdc, 0, 0, SRCCOPY );
               //SetBkMode(ps.hdc, TRANSPARENT);
               TextOut(  ps.hdc, 3, 5, "Nick:", 5 );
               EndPaint( hwnd, &ps );

               DeleteDC ( hdc );
               break;

       default:
       return DefWindowProc( hwnd, msg, wParam, lParam );
   }

   return 0;
}

 

Jak widać na powyższym kodzie chodzi mi o tą funkcje:

 //Pole tekstowe
  HWND nick = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 1, 30, 150, 25, hwnd, NULL, NULL, NULL);
//
if(( HWND ) lParam == g_hPrzycisk )
 system("java -jar minecraftlauncher1.6.jar C:\\foldermc  " + nick + "1.6.4-Forge 600 800");

 

Byłbym bardzo wdzięczny za wyjaśnienie, bądź poprawienie tego kodu ;)

Pozdrawiam.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...