读书人

msdn下的一个工具条的例子

发布时间: 2013-03-01 18:33:02 作者: rapoo

msdn上的一个工具条的例子
TBBUTTON tbButtons[numButtons] =
{
{ MAKELONG(STD_FILENEW, ImageListID), IDM_NEW, TBSTATE_ENABLED, buttonStyles, {0}, 0, (INT_PTR)L"New" },
{ MAKELONG(STD_FILEOPEN, ImageListID), IDM_OPEN, TBSTATE_ENABLED, buttonStyles, {0}, 0, (INT_PTR)L"Open"},
{ MAKELONG(STD_FILESAVE, ImageListID), IDM_SAVE, 0, buttonStyles, {0}, 0, (INT_PTR)L"Save"}
};

STD_FILEOPEN是 windows自定义的 id, 和imagelistid组合后 是什么意思呢?

难道可以随意组合嘛? 我觉得 随意组合后的结果,还是一个正确的位图id嘛?

怕不是吧。
怎么可以随意组合呢?
[解决办法]
// icon indexes for standard bitmap

#define STD_CUT 0
#define STD_COPY 1
#define STD_PASTE 2
#define STD_UNDO 3
#define STD_REDOW 4
#define STD_DELETE 5
#define STD_FILENEW 6
#define STD_FILEOPEN 7
#define STD_FILESAVE 8
#define STD_PRINTPRE 9
#define STD_PROPERTIES 10
#define STD_HELP 11
#define STD_FIND 12
#define STD_REPLACE 13
#define STD_PRINT 14

如果:const int ImageListID = 0;
MAKELONG(STD_FILEOPEN, ImageListID) 后 还是 STD_FILEOPEN
不 需要 这么 搞的。

你要 试试的话,可以改 高字:
const int ImageListID = 1;
MAKELONG(STD_FILEOPEN,ImageListID)
这个 1 可能 自绘时 会 用到。

读书人网 >VC/MFC

热点推荐