Skocz do zawartości

problem świeżaka :)


Scypion

Polecane posty

piszę moje pierwsze ćwiczebne okno przy użyciu devc++

zaczynam od aplikacji API

typowy szkielet utworzony przez środowisko;

z jakiegoś powodu gdy kliknę w kontrolkę edit

nie ma focusa na edit

wiec dodałem messagebox i o dziwo wyświetla się dwa razy;

chciałbym wyświetlić zawartość zmiennej messages

ona jest typu MSG i w żaden sposób nie mogę się do niej dobrać,

żeby sprawdzić co przekazuje

ktoś wie jak ją wyświetlić ?

Link do komentarza
Udostępnij na innych stronach

Zrób sobie przyjemność i zabierz się za technologie powszechnie używane w firmach. WinAPI to straszna nisza (zwłaszcza w Dev C++).

 

Jeśli chcesz dalej drążyć w C++, to weź Qt Creator i rób okienka w Qt. Jeśli jednak jesteś otwarty na coś innego to bierz Javę lub C#.

 

Jeśli dalej upierasz się przy swoim pomyśle, to pokaż kod.

Link do komentarza
Udostępnij na innych stronach

co do qt nie mogę na razie skonfigurować żeby chodziło, cały czas nie chce mi nic skompilować, mówi żebym użył make install,

dlatego zainteresowałem się devc++

 

kod jest mniej więcej taki

 

hwnd = CreateWindowEx (

0, /* Extended possibilites for variation */

szClassName, /* Classname */

"Pierwszy Kalkulator", /* Title Text */

WS_OVERLAPPEDWINDOW, /* default window */

CW_USEDEFAULT, /* Windows decides the position */

CW_USEDEFAULT, /* where the window ends up on the screen */

380, /* The programs width */

250, /* and height in pixels */

HWND_DESKTOP, /* The window is a child-window to desktop */

NULL, /* No menu */

hThisInstance, /* Program Instance handler */

NULL /* No Window Creation data */

);

hEdit=CreateWindowEx(0,"EDIT",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_RIGHT | ES_READONLY,20,20,300,50,hwnd,NULL,hThisInstance,0),

hButton1=CreateWindowEx(0,"BUTTON","1",WS_CHILD|WS_VISIBLE,20,162,20,20,hwnd,(HMENU)1,hThisInstance,0),

hButton2=CreateWindowEx(0,"BUTTON","2",WS_CHILD|WS_VISIBLE,41,162,20,20,hwnd,(HMENU)2,hThisInstance,0),

hButton3=CreateWindowEx(0,"BUTTON","3",WS_CHILD|WS_VISIBLE,62,162,20,20,hwnd,(HMENU)3,hThisInstance,0),

hButton4=CreateWindowEx(0,"BUTTON","4",WS_CHILD|WS_VISIBLE,20,141,20,20,hwnd,(HMENU)4,hThisInstance,0),

hButton5=CreateWindowEx(0,"BUTTON","5",WS_CHILD|WS_VISIBLE,41,141,20,20,hwnd,(HMENU)5,hThisInstance,0),

hButton6=CreateWindowEx(0,"BUTTON","6",WS_CHILD|WS_VISIBLE,62,141,20,20,hwnd,(HMENU)6,hThisInstance,0),

hButton7=CreateWindowEx(0,"BUTTON","7",WS_CHILD|WS_VISIBLE,20,120,20,20,hwnd,(HMENU)7,hThisInstance,0),

hButton8=CreateWindowEx(0,"BUTTON","8",WS_CHILD|WS_VISIBLE,41,120,20,20,hwnd,(HMENU)8,hThisInstance,0),

hButton9=CreateWindowEx(0,"BUTTON","9",WS_CHILD|WS_VISIBLE,62,120,20,20,hwnd,(HMENU)9,hThisInstance,0),

hButton0=CreateWindowEx(0,"BUTTON","0",WS_CHILD|WS_VISIBLE,41,183,20,20,hwnd,(HMENU)0,hThisInstance,0),

hPlus=CreateWindowEx(0,"BUTTON","+",WS_CHILD|WS_VISIBLE,100,120,20,20,hwnd,(HMENU)11,hThisInstance,0),

hMinus=CreateWindowEx(0,"BUTTON","-",WS_CHILD|WS_VISIBLE,100,141,20,20,hwnd,(HMENU)12,hThisInstance,0),

hDziel=CreateWindowEx(0,"BUTTON","/",WS_CHILD|WS_VISIBLE,121,120,20,20,hwnd,(HMENU)13,hThisInstance,0),

hMnoz=CreateWindowEx(0,"BUTTON","*",WS_CHILD|WS_VISIBLE,121,141,20,20,hwnd,(HMENU)14,hThisInstance,0),

hPrzec=CreateWindowEx(0,"BUTTON",",",WS_CHILD|WS_VISIBLE,20,183,20,20,hwnd,(HMENU)15,hThisInstance,0),

hRown=CreateWindowEx(0,"BUTTON","=",WS_CHILD|WS_VISIBLE,100,183,20,20,hwnd,(HMENU)16,hThisInstance,0);

 

ShowWindow i while standardowe

 

 

w WindowProcedure

case WM_COMMAND

chcę na razie sprawić, żeby SetWindowText( hEdit,aa) przekazała jakąkolwiek zmienną do hEdit

gdy nacisnę którykolwiek przycisk,

oczywiście jeśli napiszę "aa" to się wyświetli aa

ale ja chcę zmiennej aa coś przypisać

jakąś obliczoną wartość po zamianie na char ( atoi albo cos podobnego )

lub po prostu zawartość tablicy;

próbowałem z klasą vector

i aa zainicjować jako LPCSTR albo LPCWSTR

albo jako wskaźnik, zawsze błąd

rzutowanie też zawodzi

może inna funkcja

 

buttony przekazują WPARAM

jeśli użyję SendMessage to wskaźnik do stringu jest LPARAM

i kicha

Link do komentarza
Udostępnij na innych stronach

co do qt nie mogę na razie skonfigurować żeby chodziło, cały czas nie chce mi nic skompilować, mówi żebym użył make install,

QtCreator raczej jest wstępnie skonfigurowany i współgra z Qt prosto po instalacji.

 

przy okazji : jakie są, Twoim zdaniem, technologie używane powszechnie w firmach ?

To nie jest moje zdanie, wystarczy pooglądać oferty pracy. Zarejestruj się na Goldenline, pooglądaj oferty pracy dla programistów. Często pojawia się w ogłoszeniach Java + frameworki Hibernate i Spring. O dziwo jest też od groma stanowisk dla PHP - tam ważne jest posługiwanie się Wordpressem, Symfony, czy Joomla, jeszcze jest do wyboru Python + Django. Dla C# zazwyczaj ofert nie przeglądam, ale z tego co słyszę, to jest tam porównywalna ilość ofert co dla Javy. Do tego wszystkiego konieczna jest znajomość baz danych: Postgresql, Oracle, MongoDB. Tak czy inaczej webowe stanowiska niestety królują...

 

 

Do reszty może się kiedy indziej odniosę, bo już późno...

Link do komentarza
Udostępnij na innych stronach

QtCreator raczej jest wstępnie skonfigurowany i współgra z Qt prosto po instalacji.

 

 

To nie jest moje zdanie, wystarczy pooglądać oferty pracy. Zarejestruj się na Goldenline, pooglądaj oferty pracy dla programistów. Często pojawia się w ogłoszeniach Java + frameworki Hibernate i Spring. O dziwo jest też od groma stanowisk dla PHP - tam ważne jest posługiwanie się Wordpressem, Symfony, czy Joomla, jeszcze jest do wyboru Python + Django. Dla C# zazwyczaj ofert nie przeglądam, ale z tego co słyszę, to jest tam porównywalna ilość ofert co dla Javy. Do tego wszystkiego konieczna jest znajomość baz danych: Postgresql, Oracle, MongoDB. Tak czy inaczej webowe stanowiska niestety królują...

 

 

Do reszty może się kiedy indziej odniosę, bo już późno...

 

 

powiem szczerze ze ta reszta jakoś jest dla mnie ważniejsza bo nie działa i za cholerę nie wiem czemu

Link do komentarza
Udostępnij na innych stronach

Z tego co poszperałem, to używa się do tego innych funkcji:

GetDlgItemText(hDlg, IDC_EDIT1, str, 80);
SetDlgItemText(hDlg, IDC_EDIT2, str);

 

no i super - jak przypisać do str jakąś wartość typu char albo int ? albo jak zamienić char albo int na LPARAM

bo itoa świruje ( str jest typu LAPARM )

ogólnie jak przypisać jakąś wartość do str ?

ściślej mówiąc WindowProcedure odbiera wartość typu WPARAM;

i chcę ją wpisać do tablicy a potem wyświetlić w oknie EDIT

ale nie wiem jak zamienić WPARAM na LPARAM

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...