API Windows

Тема в разделе "Железный поток", создана пользователем region, 31 авг 2010.

  1. region
    Оффлайн

    region Новичок

    Credit:
    $698,22
    Book Reviews:
    0
    Не получается считать данные с edit (с текстового поля)

    пробовал считывать записывать, SendMessage, SetWindowText,GetWindowText. Ничего не получается

    Как обратиться по дескриптору и записать текст в текстовое поле, а также считать в переменную
    (из edit нужно перенести текст в edit2, при нажатии на кнопку )


    Исходник ниже
  2. BORNDEAD
    Оффлайн

    BORNDEAD Новичок

    Credit:
    $715,00
    Book Reviews:
    0
  3. region
    Оффлайн

    region Новичок

    Credit:
    $698,22
    Book Reviews:
    0
    BORNDEAD, :hi: я там уже был
  4. BORNDEAD
    Оффлайн

    BORNDEAD Новичок

    Credit:
    $715,00
    Book Reviews:
    0
    EM_GETLINE
    Copies a line of text from an edit control and places it in a specified buffer. You can send this message to either an edit control or a rich edit control.
  5. fernir
    Оффлайн

    fernir

    Credit:
    $0,00
    Book Reviews:
    0
    На сколько я понял по коду проблема в жизненном цикле переменных. Твои дескрипторы уже мертвы при обработке события от кнопки. Т.е. вот эти переменные:
    HWND hButton;
    HWND hEdit;
    HWND hEdit2;
    CHAR *texttest;
    живут ровно столько, сколько живет функция обратного вызова WndProc, а она каждый раз создается заново при обработке нового сообщения, а все переменные в ней локальные. Вынеси дескрипторы вверх, к глобальным переменным, мне кажется это должно помочь.
  6. region
    Оффлайн

    region Новичок

    Credit:
    $698,22
    Book Reviews:
    0
    :pardon: не соображаю...

    TCHAR *lpStrEdit;
    SendMessage(hEdit, EM_GETLINE, 0, (LPARAM)lpStrEdit);
    SetWindowText(hwnd,lpStrEdit);

    Считать в переменную, и вывести к заголовок окна... в заголовке @#$&$%^#


    fernir, переносил в глобал и так всё равно, ну получить заново дескриптор то не проблема...
  7. fernir
    Оффлайн

    fernir

    Credit:
    $0,00
    Book Reviews:
    0
    Память надо выделить под буфер ):
    TCHAR *lpStrEdit = new TCHAR[100];
  8. region
    Оффлайн

    region Новичок

    Credit:
    $698,22
    Book Reviews:
    0
    если так выделяю то вот что =)))
  9. BORNDEAD
    Оффлайн

    BORNDEAD Новичок

    Credit:
    $715,00
    Book Reviews:
    0
    продолжаем читать
    lParam
    A pointer to the buffer that receives a copy of the line. Before sending the message, set the first word of this buffer to the size, in TCHARs, of the buffer. For ANSI text, this is the number of bytes; for Unicode text, this is the number of characters. The size in the first word is overwritten by the copied line.
  10. fernir
    Оффлайн

    fernir

    Credit:
    $0,00
    Book Reviews:
    0
    BORNDEAD, угу, плюс возвращаемая строка не имеет ноль в конце и его туда нужно руками вписывать иначе будет после строки куча мусора до ближайшего нуля.
  11. region
    Оффлайн

    region Новичок

    Credit:
    $698,22
    Book Reviews:
    0
    :sorry: можно прототип?
  12. BORNDEAD
    Оффлайн

    BORNDEAD Новичок

    Credit:
    $715,00
    Book Reviews:
    0
    ну вобще я паскальщик но поидее
    LineLength = SendMessage(hEdit, EM_LINELENGTH, 0, 0);
    StrEdit = new TCHAR[LineLength];

    WORD* wptr;
    wptr = (WORD *)StrEdit ;
    wptr[0] = LineLength;

    LineLength = SendMessage(hEdit, EM_GETLINE, 0, (LPARAM)&StrEdit);
  13. vovka_ng
    Оффлайн

    vovka_ng Новичок

    Credit:
    $729,00
    Book Reviews:
    0
    Вот как-то так. :)

    case WM_COMMAND:
    if(LOWORD(wparam)==IDB_BUTTON)
    {
    HWND hEdit1 = GetDlgItem(hwnd, IDB_EDIT);
    HWND hEdit2 = GetDlgItem(hwnd, IDB_EDIT2);
    if (!IsWindow(hEdit1) || !IsWindow(hEdit2))
    {
    return DefWindowProc
    }

    if ((int textLen = GetWindowTextLength(hEdit1)) > 0)
    {
    TCHAR * text = new TCHAR[textLen+1];
    GetWindowText(hEdit1, text, textLen);
    text[textLen] = 0;
    SetWindowText(hEdit2, text);
    delete[] text;
    }
    }
  14. Schumi
    Оффлайн

    Schumi Active Member

    Credit:
    $1.036,00
    Book Reviews:
    0
    region, ты маньяк :)
    Вот форумы:
    forum.sources.ru
    forum.vingrad.ru
    rsdn.ru
    Вопросы, которые тебе в начале будут интересовать там есть. Будет познавательно.

Поделиться этой страницей