wywolanie funkcji po nacisnieciu kontrolki winapi

0

Witam zabralem sie za winapi , napisalem prosty program rozwiazuajcy sudoku, aktualnie chcialbym napisac cos takeigo, aby po wcisnicu kontrolki, skopiowalo liczby wpisane w okienka do zmiennych .(obslua zdarzen)

opieram sie na kursie, jednak niewime gdzie mam wkleic ponizszy fragment kodu(uzupelniony)

DWORD dlugosc = GetWindowTextLength( hText );
LPSTR Bufor =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
GetWindowText( hText, Bufor, dlugosc + 1 );

gdy wkleje go do funkcji switch obslugujacej button to kompilator wyswietla brak zdefiniowanych zmiennych . Siedze juz dzisiaj dosyc dlugo wiec bardoz mozliwe ze cos przeoczylem..
Z gory dizeki za pomoc

od razu wyprzedzam nastepne pytanie mianowicie jak skopiowac do zmienyych (tablicy) dane wpisane do controlek edit.. jezli te pola tekstowe (edit) zostaly utworzone za pomoca petli
pozdrawiam iz gory dizeki

0

Tak. Tylko w kursie winampi ktry przegladakem nie bylo bezposrednio podanych informacji jak to zrobic po nacusnieciu buttona. Troche pokombinowalem ale bardzo chcialbym to zrobic chociaz troche zgodnie z ogolnie orzyjetymi normami :p . Program napisalem na konsole I tez hest troche topornie zrobiony ale dziala I bardzo chcialbym go przeniesc do okienka.

0

nie da sie uzyskac jakiejs normalnej odpowiedzi? Winapi ... zwlaszcza ze nie ma tego w wielu kursach ..

0

nie da sie uzyskac jakiejs normalnej odpowiedzi?
prawdopodobnie dlatego, że nikt nie wie — mało kto pisze w WinAPI.
wydaje mi się że w procedurze obsługi okna odbiera się komunikat informujący o kliknięciu na przycisk i tam wywołuje odpowiednią funkcję.

0

dobra dzieki juz cos zaczyna ruszac ale chyba i tak troche naokolo. W takim razie mialbym jescze pytanie jaki jest njalpeszy sposob zeby graficznie napisac ten program do rozwiazywania sudoku majac juz kod rozwiazujacy go w konsoli.
pozdr.

0

Jeśli chodzi o przycisk, to wysyła on komunikat WM_COMMAND do okna-rodzica z notyfikacją BN_CLICKED.

Generalnie polecam dokumentację ;)

0

jaki jest njalpeszy sposob zeby graficznie napisac ten program do rozwiazywania sudoku majac juz kod rozwiazujacy go w konsoli.

Qt, GTK, WinForms, wxWidgets i wiele innych. Wszystko tylko nie WinAPI.

0

Jest tak jak pisze 0x66, dodatkowo dodam, że w jednym z parametrów komunikatu (nie pamiętam czy wParam czy lParam) jest ID naciśniętego przycisku. Mając ID można wyciągnąć uchwyt.
Skoro przyciski tworzysz w pętli to pewnie nadajesz im jakieś kolejne ID i dzięki temu możesz rozróżnić te buttony.
Potrzebne informacje znajdziesz w dokumentacji i google - pełno tego jest.
Dużo zależy od organizacji Twojego kodu, ale ogólnie zmienne możesz zadeklarować jako globalne albo np. statyczne w procedurze obsługi komunikatów okna.

0
CreateWindowEx(NULL, "BUTTON", "Pomoc", BS_OWNERDRAW | WS_VISIBLE | WS_CHILD, 27,6, 126, 37, hOkna, (HMENU)5, hThisInstance, NULL);

Jeden z moich buttonow, (HMENU) identyfikator - dla kazdego pola tekstowego przypisz kolejne liczby pozniej:

switch (message)                  
    {
       case WM_COMMAND:
        if(wParam==ID_BUTTONA_WYWOLUJACEGO_ZDARZENIE)
         {
int id=0 // identyfikator pierwszego pola tekstowego
for(id=0; id<=ostatniidentyfikator_pola_tekstowego; id++)
{
DWORD dlugosc = GetWindowTextLength( GetDlgItem(hwndokna, id));
LPSTR Bufor =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
GetWindowText(GetDlgItem(hwndokna, id), Bufor, dlugosc + 1 );

//operacje na buforze
}

        }
.
.
.
}

Wybaczcie - formatowane spacjami... Pisane z pamieci ale raczej jest ok. Na <ort>bieŻąco</ort> siedze w winapi wiec jak masz problem pisz priv :)

#edit
wszyscy tak cisna winapi, fakt moze i stare ale jak sie wkrecilem to jakos nie chce mi sie od niego odejsc... ;p Wiem, ze i tak musze bo to nie jest zadna przyszlosc ale na poczatek nie zaluje ze zaczalem sie tego uczyc.

0

dzieki za odpowiedzi. po jakims tam czasie sobie poradzilem wyswietlilem w petli te 81 pol do sudoku, pozniej konwersja do int liczenie, pozneij z powrotem ale wazne ze dziala ;p za winapi sie wzialem bo nie wiedzialem, ze jest takie cos i co moze visual studio, chyba jednak nie ma co wyważać otwartych drzwi..

1 użytkowników online, w tym zalogowanych: 0, gości: 1