CommandBar under WIN CE6

CommandBar under WIN CE6

本文关键字:CE6 WIN under CommandBar      更新时间:2023-10-16

我目前正在做一个跨平台的项目,我对这个主题还很陌生。

我尝试使用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创建工具栏的不同方式。

提前感谢!

CommandBar_Create返回NULL还是有效句柄?如果你在屏幕上看到一个条,我想是后者,所以检查错误代码是没有用的。成功的函数调用通常不会重置GetLastError返回的值。如果按钮为空,请检查用于按钮的位图是否链接到exe并且其格式兼容。