Как я могу получить свойство «только для чтения» окна редактирования win32?

друзья Как я могу получить свойство «только для чтения» окна редактирования win32?

И я знаю, как установить свойство. код такой.

SendDlgItemMessage(g_hwnd, IDC_EDIT_1, EM_SETREADONLY, 1, 0);

Но откуда мне знать, что этот элемент управления редактирования имеет свойство «только для чтения»? Я имею в виду не MFC\CWND или что-то в этом роде, а просто метод win32, например API SendMessage.

Заранее спасибо~


person Scotch Krystal    schedule 18.11.2015    source источник


Ответы (1)


Согласно MSDN :

Сообщение EM_SETREADONLY

Устанавливает или удаляет стиль только для чтения (ES_READONLY) элемента управления редактирования.

Так что просто прочитайте этот стиль из своего элемента управления, используя GetWindowLongPtr() с GWL_STYLE.

Вот вызов Win API:

bool bRO = ::GetWindowLongPtr(::GetDlgItem(g_hwnd, IDC_EDIT_1), GWL_STYLE) & ES_READONLY;
person Vlad Feinstein    schedule 18.11.2015
comment
И для вещей, определенных как CWnd* переменные: bool bRO = ::GetWindowLongPtr(pWnd->GetSafeHwnd(), GWL_STYLE) & ES_READONLY; - person sergiol; 30.06.2021