2010-04-19 3 views
8

Мне интересно, как правильно создать Gui с помощью API Win32.Gui's с Win32 API

Прямо сейчас я просто позвоню CreateWindowEx в свое WM_CREATE событие, но я не думаю, что это правильный способ сделать это.

Как пример, какой будет правильный способ добавления редактирования Edit Edit 100x20 и получения от него текста? Вы бы создали его на WM_Create, а затем использовали GetText()?

Благодаря

+1

У меня есть учебник по этому поводу в http://www.aleax.it/TutWin32/, но, увы, это только на итальянском языке - не может перевести 46 глав на английском языке и сквош результата в один SO ответ ;-). Если вы используете Google Chrome, вы можете попробовать его автоматический перевод на английский язык, просто для удовольствия - элементы управления EDIT находятся в главе 22 и следуют ;-). –

+2

Возможный дубликат http://stackoverflow.com/questions/342729/learning-the-win32-api –

+0

Голосование, чтобы закрыть как «просить учебник». –

ответ

5

Вот еще один сайт с хорошими примерами - http://www.winprog.org/tutorial/start.html Это также выглядит как они есть итальянский перевод :)

Это должно быть дубликатом много сообщений, если мы все будем размещать примеры веб-сайтов для Win32

1

Если вы создаете простой графический интерфейс с окнами api, затем используйте редактор ресурсов, чтобы создать свой ресурс диалогового окна, а затем замените регистрацию классов окон приложений и код создания окна простым звонком на DialogBoxParam. DialogBoxParam прочитает ресурс диалога и создаст диалоговое окно, автоматически масштабируя все настройки пользовательских шрифтов, обрабатывая цикл сообщений и выполняя другие функции, такие как автоматическая поддержка табуляции между элементами управления.

+0

одно - вам нужно обновить правильные шрифты темы самостоятельно для элементов управления, иначе вы получите шрифты по умолчанию из диалогового окна .res. –

1

Вам не нужно делать это в событии WM_CREATE, но вы можете. Обычно я создаю дочерние окна в той же области, где было создано главное окно. Например:

HWND mainWindow = CreateWindowEx(...); 
HWND editField = CreateWindowEx(...); // use mainWindow for the hWndParent param 
             // the hMenu parameter sets child window id 
Смежные вопросы