我目前正在从事一个跨平台项目,我对这个主题很陌生。
我尝试使用 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 设备调试了程序,得到了一个带有四个空按钮的工具栏。当我在 CommandBar_Create() 之后使用 GetLastError() 时,我得到以下系统错误代码:
ERROR_CALL_NOT_IMPLEMENTED 120 (0x78)
本系统不支持该功能。
我不明白为什么 CE6 不支持此功能。在 MSDN 库中,该方法被定义为 WINCE 函数。
有人可以解释我如何解决这个问题吗?否则,我也会接受为 CE6、CE7 和 Windows Mobile 创建工具栏的不同方法。
提前致谢!