CommandBar под WIN CE6

В настоящее время я работаю над кросс-платформенным проектом, и я довольно новичок в этом вопросе.

Я попытался с помощью CommandBar создать собственную панель инструментов для различных платформ. Он работает под CE7, Windows Mobile 6 и Windows Mobile 6.5.3. Он не работает под CE6.

Следующий код является частью, которая вызывает проблему:

const TBBUTTON tbBtns[] = {
{2, 267, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{0, 268, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{1, 269, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{3, 270, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
};
HWND hWndCB = CommandBar_Create(_AtlBaseModule.m_hInst, m_hWnd, 208);

CommandBar_AddBitmap(hWndCB, _AtlBaseModule.m_hInst, IDB_BTNS, 4, 16, 16);CommandBar_AddButtons(hWndCB,4,tbBtns);

CommandBar_Show(hWndCB, TRUE);

Я отладил программу на устройстве CE6 и получил панель инструментов с четырьмя пустыми кнопками. Когда я использовал GetLastError () после CommandBar_Create (), я получил следующий код системной ошибки:

ERROR_CALL_NOT_IMPLEMENTED 120 (0x78)

Эта функция не поддерживается в этой системе.

Я не понимаю, почему эта функция не должна поддерживаться на CE6. В библиотеке MSDN метод определяется как функция WINCE.

Может кто-нибудь объяснить мне, как решить эту проблему? В противном случае я бы также принял различные способы создания панели инструментов для CE6, CE7 и Windows Mobile.

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

0

Решение

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

0

Другие решения

Других решений пока нет …