Hallo,
Ik ben bezig om een progje te maken om lompe ASCII over rs232 te verzenden, maar daarvoor moet ik eerst het maken van een API onder de knie krijgen.
Dus na een tutorialtje of wat en wat hulp ben ik in staat geweest om het volgende te produceren:
Naja, verder nog de gebruikelijke defs en een .rc file voor het menu.
Nu het probleem, als ik dit dingetje compile krijg ik ongeveer wat ik verwacht, textveldje met daaronder een button. Als ik op deze button klik krijg ik eerst een lege message box: dit klopt, daarna krijg ik weer een lege: dit klopt niet, mijn bedoeling is namelijk om de tekst die in het textveldje staan in die messagebox te krijgen. Later doel is natuurlijk in een aantal van dit soor boxes data en instellingen voor de com poort op te slaan, maar da's van latere zorg.
Ik heb vanalles geprobeerd, maar ik krijg gewoon de tekst uit het veldje niet in mijn message box, en ik kan er niet achterkomen waar het foutgaat, iemand een idee?
b.v.
mvg Tom
Ik ben bezig om een progje te maken om lompe ASCII over rs232 te verzenden, maar daarvoor moet ik eerst het maken van een API onder de knie krijgen.
Dus na een tutorialtje of wat en wat hulp ben ik in staat geweest om het volgende te produceren:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
| #include <windows.h> #include <string.h> #include <iostream.h> #include "main.h" LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); static char gszClassName[] = "db"; static HINSTANCE ghInstance = NULL; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX WndClass; HWND hwnd; MSG Msg; ghInstance = hInstance; WndClass.cbSize = sizeof(WNDCLASSEX); WndClass.style = NULL; WndClass.lpfnWndProc = WndProc; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hInstance = ghInstance; WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); WndClass.lpszMenuName = "ID_MENU"; WndClass.lpszClassName = gszClassName; WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if(!RegisterClassEx(&WndClass)) { MessageBox(0, "Window Registration Failed!", "Error!", MB_ICONSTOP | MB_OK); return 0; } hwnd = CreateWindowEx( WS_EX_STATICEDGE, gszClassName, "Serial Tool 1.0", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 320, 240, NULL, NULL, ghInstance, NULL); if(hwnd == NULL) { MessageBox(0, "Window Creation Failed!", "Error!", MB_ICONSTOP | MB_OK); return 0; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while(GetMessage(&Msg, NULL, 0, 0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { HWND hButton, hInput, hStatus; //TCHAR text[10]; LPSTR text; text = (LPSTR)GlobalAlloc(GPTR, 10); //strcpy(text, "test"); switch(Message) { case WM_CREATE: hButton = CreateWindowEx(NULL, "Button", "Send!", WS_BORDER | WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 45, 120, 30, hwnd, (HMENU)ID_SEND_BUTTON, ghInstance, NULL); hInput = CreateWindowEx(NULL, "Edit", "Field", ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE, 10, 10, 120, 20, hwnd, (HMENU)ID_INPUT_FIELD, ghInstance, NULL); break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_COMMAND: switch(LOWORD(wParam)) { case ID_SEND_BUTTON: MessageBox(hwnd, text, "Sended!", 0); SendMessage(hInput, WM_GETTEXT, 0, (LPARAM)text); MessageBox(hwnd, text, "Data!", 0); break; case ID_FILE_OPEN: MessageBox(hwnd, "Open File...", "Open", 0); break; case ID_FILE_SAVE: MessageBox(hwnd, "Save...", "Save", 0); break; case ID_FILE_EXIT: PostQuitMessage(0); case ID_OPEN_OPTIONS: MessageBox(hwnd, "Open...", "Open", 0); break; case ID_OPEN_HELP: MessageBox(hwnd, "Help me!", "Help", 0); break; case ID_HELP_ABOUT: MessageBox(hwnd, "About Serial Tool", "About", 0); break; } break; default: return DefWindowProc(hwnd, Message, wParam, lParam); } return 0; } |
Naja, verder nog de gebruikelijke defs en een .rc file voor het menu.
Nu het probleem, als ik dit dingetje compile krijg ik ongeveer wat ik verwacht, textveldje met daaronder een button. Als ik op deze button klik krijg ik eerst een lege message box: dit klopt, daarna krijg ik weer een lege: dit klopt niet, mijn bedoeling is namelijk om de tekst die in het textveldje staan in die messagebox te krijgen. Later doel is natuurlijk in een aantal van dit soor boxes data en instellingen voor de com poort op te slaan, maar da's van latere zorg.
Ik heb vanalles geprobeerd, maar ik krijg gewoon de tekst uit het veldje niet in mijn message box, en ik kan er niet achterkomen waar het foutgaat, iemand een idee?
b.v.
mvg Tom
Take a parachute, and jump!