Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
7 / 7 / 9
Регистрация: 22.10.2015
Сообщений: 74

GetWindowText, не читаются символы из Edit-а

09.03.2016, 01:21. Показов 2876. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста, где я накосячил с GetWindowText? Я хочу прочитать 10 символов из edit в буфер, но ничего не читается(
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
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
 
LRESULT CALLBACK MainWinProc(HWND,UINT,WPARAM,LPARAM, char *str);
 
#define ID_MYBUTTON1 1
#define ID_EDIT1 7
 
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hpi, LPSTR cmdline, int ss) {
    char str[20];
    setlocale(LC_ALL, "Rus");
 /* создаем и регистрируем класс главного окна */
 WNDCLASS wc;
 wc.style=0;
 wc.lpfnWndProc=MainWinProc;
 wc.cbClsExtra=wc.cbWndExtra=0;
 wc.hInstance=hInst;
 wc.hIcon=NULL;
 wc.hCursor=NULL;
 wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
 wc.lpszMenuName=NULL;
 wc.hbrBackground = (HBRUSH)COLOR_APPWORKSPACE;
 wc.lpszClassName="Example 4 MainWnd Class";
 if (!RegisterClass(&wc)) return FALSE;
 
 /* создаем главное окно и отображаем его */
 HWND hMainWnd=CreateWindow("Example 4 MainWnd Class","Тест",NULL,
  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInst,NULL); // WS_OVERLAPPEDWINDOW
 
 if (!hMainWnd) return FALSE;
 ShowWindow(hMainWnd,ss);
 UpdateWindow(hMainWnd);
 
 MSG msg; /* цикл обработки событий */
 while (GetMessage(&msg,NULL,0,0)) {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 
 return msg.wParam;
}
 
/* процедура обработки сообщений для главного окна */
LRESULT CALLBACK MainWinProc(HWND hw,UINT msg,WPARAM wp,LPARAM lp, char *str) {
    HWND edit1,editField;
    HINSTANCE hinst;
 switch (msg) {
  case WM_CREATE:
   CreateWindow("button","Читать edit",WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE,
    5,5,150,20,hw,(HMENU)ID_MYBUTTON1,NULL,NULL);
 
      edit1=CreateWindow("edit","edit",WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_WANTRETURN | WS_HSCROLL | WS_VSCROLL,5,45,100,100,hw,(HMENU) ID_EDIT1,NULL,NULL);
      SetWindowText(edit1, "Текст");
 
   return 0;
  case WM_COMMAND:
   if ((HIWORD(wp)==0) && (LOWORD(wp)==ID_MYBUTTON1))
    {
        int len;
        len = GetWindowText(edit1,str,10);
        printf("\n%s\n\nДлина равна = %d",str,len);
 
    }
 return 0;
  case WM_DESTROY:
   /* пользователь закрыл окно, программа может завершаться */
   PostQuitMessage(0);
   return 0;
 }
 return DefWindowProc(hw,msg,wp,lp);
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2016, 01:21
Ответы с готовыми решениями:

Не читаются русские символы на сайте
Здравствуйте уважаемые форумчане! Есть сайт, который упорно не хочет мне показывать русские буквы - одни знаки вопроса. Пробовал сохранять...

Не читаются русские символы в wchar_t
привет Что-то не срастается при чтении русских символов их файла. Файл file.txt содержит строку &quot;Новая папка&quot;. Читаем: ...

Читаются не все символы кириллицы в консоли (java, NetBeans)
Программа не читает символы казахского языка (вместо них идут знаки вопроса), например &quot;ғ&quot;, при этом корректно выводит...

2
 Аватар для Alex xelA
100 / 38 / 20
Регистрация: 27.02.2016
Сообщений: 135
09.03.2016, 07:27
Лучший ответ Сообщение было отмечено LoSyAsH как решение

Решение

У вас неправильно объявлен MainWindowProc, там не должно быть char* str в конце.

C++
1
2
3
4
5
6
LRESULT CALLBACK WindowProc(
  _In_ HWND   hwnd,
  _In_ UINT   uMsg,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);
Объявите char str[20] глобально (выведите ее из WinMain).

Добавлено через 4 минуты
А текст получайте так:

C++
1
2
int len = GetWindowText(edit1, str, 10);
str[len] = 0; // хотя вроде GWT заканчивает строку нулем самостоятельно, вне зависимости от длины.
1
7 / 7 / 9
Регистрация: 22.10.2015
Сообщений: 74
09.03.2016, 09:19  [ТС]
Ой, вон оно что... я про это не подумал... Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2016, 09:19
Помогаю со студенческими работами здесь

Как при вводе текста в один Edit загружать те же символы во второй Edit?
помогите есть 2 mdi окна в них эдиты. как при вводе текста в 1 эдит загружать теже символы во второй эдит? как хотя бы получить информацию...

Файлы на USB флеш не читаются(читаются частично)
USB флеш накопитель 32Gb Transcend JetFlash 500 Black (TS32GJF500) Скидываю на флешку файлы,сразу же проверяю,все нормально файлы на...

Запрет на символы в Edit
Привет всем! Подскажите пажалста как запретить ввод любых символов в поле Edit кроме целочисленных чисел? з.ы....

И снова Edit и буквы (символы)
Столкнулся вот с таким вариантом: В программе есть Editы в них необходимо ввести дробные значения, пользователь не должен ввести ничего...

Поменять местами символы в edit
Помогите с проблемкой , пожалуйста. Есть edit который заполняет пользователь , как по нажатию кнопки поменять местами символы в этом edite?...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru