CString str;
m_edit.GetWindowText(str);
DDX или SendMessage(, WM_GETTEXT,,)
Так в чем отличие и что лучше использовать?
Цитата: michael_is_98
Обратил внимание, что при конструировании диалогов MFC для получения текстов в едитах используется функция DDX_Control. Но ведь можно получить содержимое едита и вручную - через SendMessage(,WM_GETTEXT,,)
Так в чем отличие и что лучше использовать?
Так в чем отличие и что лучше использовать?
А зачем тогда вообще MFC использовать? Можно ведь в чистом WinAPI писать...
Или вообще зачем нужны компиляторы? Можне же сразу опкодами в блокноте писать... :)
Работая на чистом API программист может не использовать возможности ООП, а MFC построен на идеях ООП (правда все же в STL это выглядит более "красивее").
Просто работаю с MFC без использования "мастеров","вручную", поэтому привык забирать текст через SendMessage(,WM_GETTEXT,,).
Цитата: michael_is_98
есть конкретная инструкция DDX_Control, а есть SendMessage(,WM_GETTEXT,,).
Работая на чистом API программист может не использовать возможности ООП, а MFC построен на идеях ООП (правда все же в STL это выглядит более "красивее").
Просто работаю с MFC без использования "мастеров","вручную", поэтому привык забирать текст через SendMessage(,WM_GETTEXT,,).
Работая на чистом API программист может не использовать возможности ООП, а MFC построен на идеях ООП (правда все же в STL это выглядит более "красивее").
Просто работаю с MFC без использования "мастеров","вручную", поэтому привык забирать текст через SendMessage(,WM_GETTEXT,,).
DDX для того и сделан, чтобы облегчить обмен данными между котролами и переменными.
Если делать через SendMessage, то придется писать "кучу" кода для выделения памяти, запихивание этих всех параметров в мессагу и т.п. Гораздо же удобнее написать:
Код:
Плюс к этому, происходят нужные проверки и т.п. Также мне не понятно до конца, зачем использовать SendMessage вообще если есть функция именно для этого предназначенные???? GetWindowTextLength/GetWindowText :)
Ааа, я понял, наверное чтобы работало быстрее, потому как в итоге все сводится к SendMessage :)
чтобы работало быстрее, пользуйте не DDX_Control, a DDX_Text. сам едит-то редко нужен. чаще только его текст