Martiial Temat założony przez niniejszego użytkownika |
WINAPI Listbox » 2016-05-01 17:34:21 Panowie, Panie.
Czy macie jakiś pomysł jak wkleić w ListBoxa dane ze struktury.
ListBox: hlistbox=CreateWindowEx(WS_EX_CLIENTEDGE, L"LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 30, 30, 180, 100, hWnd, NULL, hInstance, NULL ); ________________________________________________________________ Struktura: typedef struct _SCAN_RESULT { TCHAR szScanValue[MAX_PATH]; // barcode value(compatible to szScanMaxValue) TCHAR szScanType[MAX_PATH]; // barcode name. TCHAR tcCodeID; // barcode ID. BAR_TYPE barType; // barcode type(BAR_TYPE). TCHAR tcSymLetter; // barcode Letter(for 2D). TCHAR tcSymModifier; // barcode Modifier(for 2D). WORD unScanLength; // barcode value's length. TCHAR szScanMaxValue[MAX_PATH*15]; // barcode value.(if you read to large barcode(have the many data) szScanValue is not enough fill scan data. so as use as possible this variable. // Reserve field DWORD dwDecodeTime; // DecodeTime (ms) DWORD dwResultReserve02; // Reserve field 02. } SCAN_RESULT, *PSCAN_RESULT; _________________________________________________________________
Stworzyłem coś takiego: _SCAN_RESULT wynik; I się zastanawiam jak wstawić. Bo jak zrobiłem:
CString str = wynik.szScanValue; int lenghthlb=GetWindowTextLength(hlistbox); for (int i = 0; i < lenghthlb; i++) { hlistbox.AddString(str); }
To wywaliło mi błąd:
1>.\cAB11.cpp(240) : error C2228: left of '.AddString' must have class/struct/union 1> type is 'HWND' 1> did you intend to use '->' instead?
I odrazu jak moglibyście mi pomóc z napisaniem kodu,że zawartość listboxa dajemy w plik txt, który na podstawie nazwy zawartej w hedit jest tworzony.
|
|
Gibas11 |
» 2016-05-01 17:58:09 A hlistbox to nie jest przypadkiem wskaźnik? Jak chcesz wywołać metodę obiektu na który wskazuje... przeczytaj log kompilatora, bo opisał Ci rozwiązanie w całkowicie przystępny sposób. EDIT: Sprawdziłem, HWND jest wskaźnikiem bo HWND = HANDLE = PVOID = void*. Btw dlatego nie używa się WinAPI kiedy można. |
|
Martiial Temat założony przez niniejszego użytkownika |
» 2016-05-01 18:06:16 Panie, nie musisz mnie do tego przekonywać żeby WINAPI unikać jak ognia. Sytuacja mnie do tego zmusiła, bo na WIN CE ciężko używać czegoś innego. |
|
Gibas11 |
» 2016-05-01 18:10:00 |
|
Martiial Temat założony przez niniejszego użytkownika |
» 2016-05-01 18:13:13 Qt? Pierwszy raz widzę coś takiego. To jakaś biblioteka do c++?
EDiT:
CListBox listbox; CString str = wynik.szScanValue; int lenghthlb=GetWindowTextLength(hlistbox); for (int i = 0; i < lenghthlb; i++) { listbox.AddString(str); }
hlistbox=CreateWindowEx( WS_EX_CLIENTEDGE, L"LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 30, 30, 180, 100, hWnd, NULL, hInstance, listbox );
Still not working, gdzie skopałem.
Po zeskanowaniu kodu, dalej listbox jest pusty. |
|
Gibas11 |
» 2016-05-01 18:37:57 Tak, nie pozwala na wszystko to co WinAPI (np. obsługę koloru tekstu w konsoli), ale wystarczy do napisania aplikacji okienkowej a z wykorzystaniem Qt Creator (b. dobre IDE) sam layout zrobisz w 5 minut i zostaje sam backend. Tu masz moje kółko i krzyżyk ( https://github.com/KoczurekK/tic-tac-toe), łącznie 1.5h pracy, ale nigdy w życiu nie widziałem wcześniej Qt, więc jest w to wliczony czas nauki. |
|
Martiial Temat założony przez niniejszego użytkownika |
» 2016-05-01 18:43:48 A jak kodzik który dałem wyżej? |
|
Gibas11 |
» 2016-05-01 18:49:31 A teraz już kompiluje się poprawnie? Nawet nie mam Windowsa na PC od kilku lat a w WinAPI nie programowałem jeszcze dłużej, więc poza rozwiązywaniem błędów kompilacji niewiele umiem, niech wypowie się ktoś kto tego używa. :| |
|
« 1 » 2 |