В настоящее время я работаю над кросс-платформенным проектом, и я довольно новичок в этой теме.
Я попытался использовать 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.
Заранее спасибо!