Win32 创建ToolBar

wangjianbo1123 2010-04-26 02:36:38
我现在想实现一个地图的放大于缩小的功能,之前是通过相应键盘的向上(放大)、向下(缩小)来实现的,现在想通过给应用程序创建一个toolbar,在其中放上放大与缩小的图标,通过点击图标来实现图片的放大与缩小。之前没有做过,不知道怎么样下手,望有过类似经验的人能够指点下。ToolBar是怎么样创建的?(Win32中的工程文件)
...全文
222 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wb_rock 2011-06-09
  • 打赏
  • 举报
回复
类似图片缩放的算法很多,上网有一堆
wangjianbo1123 2010-04-28
  • 打赏
  • 举报
回复
有类似经验的人指点下
wangjianbo1123 2010-04-27
  • 打赏
  • 举报
回复
谢谢 楼上的

我现在想显示我自己的图标文件,在

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_FILENEW就是对应相应的图标文件,但是我在工程中找不到他们的对用的关系,不知道怎么样弄?还有就是我想点击一个放大图标的时候,鼠标就变成放大图标的样子,点击一下鼠标,图形就放大,不想放大是,点击下放大图标,这个是怎么样实现的?像PDF文件那样 给点提示,谢谢
wade_2003 2010-04-27
  • 打赏
  • 举报
回复
这个放大、缩小功能要利用重绘了吧,要不然估计实现不了吧
wangjianbo1123 2010-04-27
  • 打赏
  • 举报
回复
ding
wangjianbo1123 2010-04-27
  • 打赏
  • 举报
回复
没有人知道么,有过类似经验的望指点。
fox000002 2010-04-26
  • 打赏
  • 举报
回复
win32 还是查查 MSDN

http://msdn.microsoft.com/en-us/library/bb760446(VS.85).aspx

HWND CreateSimpleToolbar(HWND hWndParent)
{
// Define some constants.
const int ImageListID = 0;
const int numButtons = 3;
const DWORD buttonStyles = BTNS_AUTOSIZE;
const int bitmapSize = 16;

// Create the toolbar.
HWND hWndToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | TBSTYLE_WRAPABLE,
0, 0, 0, 0,
hWndParent, NULL, g_hInst, NULL);
if (hWndToolbar == NULL)
{
return NULL;
}

// Create the imagelist.
HIMAGELIST hImageList = ImageList_Create(
bitmapSize, bitmapSize, // Dimensions of individual bitmaps.
ILC_COLOR16 | ILC_MASK, // Ensures transparent background.
numButtons, 0);

// Set the image list.
SendMessage(hWndToolbar, TB_SETIMAGELIST, (WPARAM)ImageListID,
(LPARAM)hImageList);

// Load the button images.
SendMessage(hWndToolbar, TB_LOADIMAGES, (WPARAM)IDB_STD_SMALL_COLOR,
(LPARAM)HINST_COMMCTRL);

// Initialize button info.
// IDM_NEW, IDM_OPEN, and IDM_SAVE are application-defined command constants.
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"}
};

// Add buttons.
SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE,
(WPARAM)sizeof(TBBUTTON), 0);
SendMessage(hWndToolbar, TB_ADDBUTTONS, (WPARAM)numButtons,
(LPARAM)&tbButtons);

// Tell the toolbar to resize itself, and show it.
SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
ShowWindow(hWndToolbar, TRUE);
return hWndToolbar;
}
wangjianbo1123 2010-04-26
  • 打赏
  • 举报
回复
谢谢楼上几位的回答,能说具体点么。最好能给个具体的例子。强调下,我这个不是MFC
na2650945 2010-04-26
  • 打赏
  • 举报
回复
MFC中有这个了类CToolBar.
daredjever 2010-04-26
  • 打赏
  • 举报
回复
功能已经实现了,就是增加一个工具栏添加按钮指定调用的函数,自己动手很简单的
冷月清晖 2010-04-26
  • 打赏
  • 举报
回复
请搜索 windows程序设计

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧