Вручную создайте дочернее окно диалога, используя идентификатор из resource.h - PullRequest
0 голосов
/ 09 июня 2010

Я хочу добавить простую панель в диалог, созданный с помощью редактора ресурсов Visual Studio, но редактор ресурсов этого не позволяет - мне нужно добавить свой собственный CWnd в качестве дочернего элемента диалога. Однако, таким образом, я думаю, что должен использовать CWnd :: Create вручную и передавать имена для класса и окна.

Я хочу создать идентификатор, такой как IDC_MYPANEL, и как можно больше добавить окно, чтобы оно работало так, как определено в шаблоне. Какой правильный способ сделать это, и какой класс MFC лучше всего использовать в качестве простой панели ... просто используйте сам CWnd?

1 Ответ

1 голос
/ 10 июня 2010

Что вы подразумеваете под «простой панелью»? Если это пользовательский элемент управления, наследуйте от CWnd, переопределите Create () и вызовите CWnd :: Create () с NULL в качестве имени класса, чтобы MFC создал его, и добавьте строку в resource.h со значением IDC_XXX вашего элемента управления , Если это поддиалог, с элементами управления на нем, производные от CDialog и вызов CDialog :: Create () с IDD, который вы определили в своем диалоге.

Единственное отличие при создании элемента управления во время выполнения состоит в том, что в OnInitDialog вы выполняете некоторые операции Create () и инициализации и не включаете строку DDX_Control () для этого элемента управления. В остальном все работает так же.

...