Каждый ресурс, представляющий панель управления в редакторе ресурсов Microsoft Visual C++, выступает как единое целое, позволяя одновременно изменять внешний вид кнопок, задавать их идентификаторы и строки описания. В исходном же файле ресурсов приложения ресурс панели управления состоит из трех частей.
Первая часть описывает панель управления, например:
IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15 BEGIN BUTTON ID_FILE_NEW BUTTON ID_FILE_OPEN BUTTON ID_FILE_SAVE SEPARATOR BUTTON ID_EDIT_CUT BUTTON ID_EDIT_COPY BUTTON ID_EDIT_PASTE SEPARATOR BUTTON ID_FILE_PRINT BUTTON ID_APP_ABOUT END
В данном фрагменте описывается панель управления с идентификатором IDR+MAINFRAME. В блоке BEGIN-END при помощи ключевого слова BUTTON идет описание каждой кнопки панели управления, где задается идентификатор кнопки. Ключевое слово SEPARATOR означает, что между кнопками, разделенными строкой SEPARATOR, увеличивается расстояние. За счет этого достигается эффект разделения кнопок на группы.
В первой части ресурса панели управления отсутствует изображения кнопок. Они располагаются отдельно и представляют вторую часть ресурса. Все кнопки представлены одним bitmap-изображением, имеющим тот же идентификатор, что и соответствующий ресурс TOOLBAR, например:
IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp"
Все изображения кнопок расположены последовательно одна за другой в изображении Toolbar.bmp. Порядок, в котором они расположены, должен соответствовать порядку, в котором кнопки описаны в ресурсе TOOLBAR, и порядку, в котором они будут отображаться на экране. Между отдельными изображениями кнопок должны отсутствовать промежутки, даже если в описании ресурса TOOLBAR присутствуют разделители SEPARATOR.
Для каждой кнопки можно ввести описывающую ее текстовую строку. Эти строковые ресурсы и хранятся в третьей, необязательной части ресурса панели управления.
Соответствие строковых ресурсов кнопкам панели управления достигается за счет присвоения им одинаковых идентификаторов, например:
STRINGTABLE DISCARDABLE BEGIN …….. ID_FILE_NEW "Create a new document\nNew" ….…. END
Надо отметить, что строки описания некоторых кнопок могут отсутствовать или, наоборот, использоваться еще и в других ресурсах, например, в описании ресурсов меню.