Можно ли избежать статических или глобальных переменных в диалоговых функциях? - PullRequest
1 голос
/ 30 августа 2010

Если в диалоговой функции нужно какое-то состояние, кажется, вам нужна какая-то статическая переменная.Например, процедура подключения для GetOpenFileName предоставляет диалоговой функции адрес структуры OPENFILENAME в ее вызове WM_INITDIALOG, но не в последующих вызовах, а структура OPENFILENAME содержит место для lCustData, который можно использовать для передачи информации между диалоговой процедурой ивызывающий GetOpenFileName.Если для функции диалога требуется любое из этих состояний, кажется, что единственной альтернативой является статическая или глобальная переменная.

1 Ответ

2 голосов
/ 30 августа 2010

Вы можете использовать SetProp в WM_INITDIALOG, например , который рекомендует KB , или SetWindowLongPtr (.., GWLP_USERDATA), если у вас есть пользовательские элементы управления (шаблон)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...