Jak rozumieć ostatni parametr funkcji CreateWindowEx() ?

Jak rozumieć ostatni parametr funkcji CreateWindowEx() ?
gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
0

Jak rozumieć mam według https://msdn.microsoft.com/en-[...]top/ms632680%28v=vs.85%29.aspx ostatni argument funkcji?
Jeżeli przekażę tam wskaźnik na coś będę mógł go odczytać wewnątrz komunikatu WM_CREATE owej kontrolki?
jeżeli tak, to czy to ma wyglądać tak?

Kopiuj
char *tekst = "asdasda" 
Kopiuj
CreateWindowEx(0, "KLASA", "TEKST", WS_CHILD | WS_VISIBLE, 0, 0, 100, 10, hwnd, NULL, hInstance, tekst) 
Kopiuj
case WM_CREATE:
     char* tekst = (char*)lParam
Azarien
  • Rejestracja: dni
  • Ostatnio: dni
4

WM_CREATE nie dostaje tego wskaźnika bezpośrednio, ale wskaźnik na strukturę typu CREATESTRUCT, która (między innymi) zawiera wskaźnik podany do CreateWindow/CreateWindowEx.

gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
0

czyli ma być według

Kopiuj
typedef struct tagCREATESTRUCT {
  LPVOID    lpCreateParams; 

tak:

Kopiuj
 
case WM_CREATE:{
     void *dane =  (void*)((CREATESTRUCT *)lParam) -> lpCreateParams;

?

CN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Jest dobry kurs xiona WinApi, tam masz wszystko dokladnie wyjaśnione.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

lpCreateParams już jest void*, po co rzutujesz?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.