Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
SeregaVolk
1

Не могу получить строку с EditBox

27.05.2008, 20:44. Показов 3539. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Простой исходный текст, Хело Ворд
создал по книге "edit" и не могу получить из него текст по щелчку мыши
(и что значит (LPARAM)name, в чар записать лонг?,вроде бред)
Вот код:
C++
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#include "stdafx.h"
#include "resource.h"
 
#define MAX_LOADSTRING 100
#define EDT 10012
 
// Global Variables:
HINSTANCE hInst;                                // current instance
TCHAR szTitle[MAX_LOADSTRING];                              // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];                                // The title bar text
 
// Foward declarations of functions included in this code module:
ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
 
HWND hDial,hEdit;
char name[10];
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    // TODO: Place code here.
    MSG msg;
    HACCEL hAccelTable;
 
    // Initialize global strings
    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadString(hInstance, IDC_DIALOG, szWindowClass, MAX_LOADSTRING);
    MyRegisterClass(hInstance);
 
    // Perform application initialization:
    if (!InitInstance (hInstance, nCmdShow)) 
    {
        return FALSE;
    }
 
    hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_DIALOG);
 
    // Main message loop:
    while (GetMessage(&msg, NULL, 0, 0)) 
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
 
    return msg.wParam;
}
 
 
ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEX wcex;
 
    wcex.cbSize = sizeof(WNDCLASSEX); 
 
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = (WNDPROC)WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, (LPCTSTR)IDI_DIALOG);
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = (LPCSTR)IDC_DIALOG;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
 
    return RegisterClassEx(&wcex);
}
 
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
 
   hInst = hInstance; // Store instance handle in our global variable
 
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
 
  hDial=CreateDialog(hInst,(LPCTSTR)IDD_DIALOG1, hWnd, (DLGPROC)About);
 
//DialogBox(hInst,(LPCTSTR)IDD_DIALOG1,hWnd,(DLGPROC)About);
//  ShowWindow(hDial,SW_SHOWNORMAL);
    //hEdit=GetDlgItem(hDial,IDC_EDIT1);
 
    hEdit = CreateWindow("edit", NULL, WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT,
     200, 200, 80, 30, hWnd, (HMENU)EDT, hInstance, NULL);
    SetFocus(hEdit);
 
   if (!hEdit)
   {
      MessageBox(NULL,"fdh","Имя!!!",MB_OK);
   }
 
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
 
   return TRUE;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    //PAINTSTRUCT ps;
    //HDC hdc;
    TCHAR szHello[MAX_LOADSTRING];
    LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
 
    switch (message) 
    {
        
    case WM_CREATE:
        
        //GetDlgItem
    case WM_COMMAND:
            wmId    = LOWORD(wParam); 
            wmEvent = HIWORD(wParam); 
            // Parse the menu selections:
            switch (wmId)
            {
                case IDM_ABOUT:
                   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
                   break;
                case IDM_EXIT:
                   DestroyWindow(hWnd);
                   break;
                default:
                   return DefWindowProc(hWnd, message, wParam, lParam);
            }
            break;
        case WM_LBUTTONDOWN:
 
        SendMessage(hEdit,EM_GETLINE,0,(LPARAM)name);
 
            MessageBox(hWnd,name,"Имя!!!",MB_OK);
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
 
// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_INITDIALOG:
                return TRUE;
 
        case WM_COMMAND:
            if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
            {
                
                EndDialog(hDlg, LOWORD(wParam));
                
                return TRUE;
            }
            break;
    }
    return FALSE;
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2008, 20:44
Ответы с готовыми решениями:

Почему не могу ввести данные в EditBox?
Код элемента ввода <input type="text" id="Editbox2"...

Как получить дескриптор EditBox'a на диалоговой панели
вот у меня есть вот такая диалоговая панелька, созданная в дизайнере http://***********/b86c1b69/...

Не могу получить строку
Здравствуйте, есть программа для перевода строки в Морзянку, но если выполнять считывание с...

Не могу получить строку через getline
Есть класс class door { public: float squaredoor (); //функция расчета площади...

1
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
01.06.2008, 17:10 2
(LPARAM)name - не знаю, можно ли так писать, но по логике здесь имеется в виду (LPARAM)&name.
An application sends an EM_GETLINE message to copy a line of text from an edit control and place it in a specified buffer.
EM_GETLINE
wParam = (WPARAM) line; // line number to retrieve
lParam = (LPARAM) (LPCSTR) lpch; // address of buffer for line
Parameters
line
Value of wParam. Specifies the zero-based index of the line to retrieve from a multiline edit control. A value of zero specifies the topmost line. This parameter is ignored by a single-line edit control.
lpch
Value of lParam. Points to the buffer that receives a copy of the line. The first word of the buffer specifies the maximum number of characters that can be copied to the buffer.
Return Values
The return value is the number of characters copied. The return value is zero if the line number specified by the line parameter is greater than the number of lines in the edit control.
Remarks
The copied line does not contain a terminating null character.
Код
case WM_LBUTTONDOWN:

SendMessage(hEdit,EM_GETLINE,0,(LPARAM)name);

MessageBox(hWnd,name,"Имя!!!",MB_OK);
break;
Перед SendMessage в начало name надо записать его размер, а после получения строки записать добавить в конец нулевой символ (или заранее обнулить буфер), чтобы потом проблем не было.
0
01.06.2008, 17:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2008, 17:10
Помогаю со студенческими работами здесь

перевод из CString EditBox'a в int, потом вывод массива int в другой EditBox
Программа на Visual C++ 6.0 Сильно не бить если сложно понять этот ужас. Если кому надо пояснялки...

Получить строку, которая дублирует первую строку таким образом:
Получить строку, которая дублирует первую строку таким образом: торт(исходная строка),...

Запросить строку и получить из неё строку,которая получается из данной чтением справа-налево
Запросить строку и получить из неё строку,которая получается из данной чтением справа-налево

Запросить строку и получить из нее строку,которая получается из данной чтение справа-налево
Можно в АБС?? и Блок схему плиз Добавлено через 17 часов 38 минут Завтра сдавать нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru