[基于SDK]我创建好工具条后,工具条上的按钮图片显示的是系统默认的(我也不知道如何换上资源里备好的位图),代码如下:
hTool = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE, 0, 0, 0, 0,
hWnd, (HMENU)IDC_MAIN_TOOL, GetModuleHandle(NULL), NULL);
SendMessage(hTool, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); TBBUTTON tbb[3];
TBADDBITMAP tbab; tbab.hInst = HINST_COMMCTRL;
tbab.nID = IDB_STD_SMALL_COLOR;
SendMessage(hTool, TB_ADDBITMAP, 0, (LPARAM)&tbab); ZeroMemory(tbb, sizeof(tbb));
tbb[0].iBitmap = STD_FILENEW;
tbb[0].fsState = TBSTATE_ENABLED;
tbb[0].fsStyle = TBSTYLE_BUTTON;
tbb[0].idCommand = ID_FILE_NEW;
.
.
.
SendMessage(hTool, TB_ADDBUTTONS, sizeof(tbb)/sizeof(TBBUTTON), (LPARAM)&tbb);请问该如何换上资源里准备好的位图呢? 请高手帮忙。
另外为什么创建的这个工具条没有焦点?鼠标点上去一点反应都没有。
hTool = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE, 0, 0, 0, 0,
hWnd, (HMENU)IDC_MAIN_TOOL, GetModuleHandle(NULL), NULL);
SendMessage(hTool, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); TBBUTTON tbb[3];
TBADDBITMAP tbab; tbab.hInst = HINST_COMMCTRL;
tbab.nID = IDB_STD_SMALL_COLOR;
SendMessage(hTool, TB_ADDBITMAP, 0, (LPARAM)&tbab); ZeroMemory(tbb, sizeof(tbb));
tbb[0].iBitmap = STD_FILENEW;
tbb[0].fsState = TBSTATE_ENABLED;
tbb[0].fsStyle = TBSTYLE_BUTTON;
tbb[0].idCommand = ID_FILE_NEW;
.
.
.
SendMessage(hTool, TB_ADDBUTTONS, sizeof(tbb)/sizeof(TBBUTTON), (LPARAM)&tbb);请问该如何换上资源里准备好的位图呢? 请高手帮忙。
另外为什么创建的这个工具条没有焦点?鼠标点上去一点反应都没有。
把这个改为你需要的图标的ID进去就可以了,必须先把图标装进资源管理器并给个ID
如果不灰显,说明添加的消息响应函数没有被执行,那就是你把消息响应函数添加到了错误的类里面去了。
一般是将按钮的消息响应函数添加在CMainFrame类或C**View类里面,如果工具条是自己写的了类,
切忌不要添加到工具条类自己里面去。类只是一个抽象的东西,消息的接收要靠类创建的对象(窗口),工具条是子窗口,子窗口的消息要又父窗口转发
给它。
我加了这个属性的啊。
CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE|TBSTYLE_BUTTON, 0, 0, 0, 0,
hWnd, (HMENU)IDC_MAIN_TOOL, GetModuleHandle(NULL), NULL);