有关于toolbar中AddRadioTool添加的按钮的问题 Topic is solved

这是wxWidgets论坛的中文版本。在这里,您可以用您的母语汉语讨论上面任一子论坛所涉及的所有关于wxWidgets的话题。欢迎大家参与到对有价值的帖子的中英互译工作中来!
Post Reply
secondsen
Earned a small fee
Earned a small fee
Posts: 18
Joined: Tue Apr 02, 2013 4:14 pm

有关于toolbar中AddRadioTool添加的按钮的问题

Post by secondsen » Fri Apr 19, 2013 2:11 pm

如题。。。我先上代码把

Code: Select all

pToolbar->AddTool(NARMAL) 多次


pToolBar->AddSeparator();
    pToolBar->AddRadioTool(MENU_ID_MODE_MAP, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,240,24,24)), bitmap.GetSubBitmap(wxRect(24,240,24,24)), wxString("地图"), wxString("切换到地图编辑模式。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_MODE_EVENT, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,264,24,24)), bitmap.GetSubBitmap(wxRect(24,264,24,24)), wxString("事件"), wxString("切换到事件编辑模式。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_MODE_AREA, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,288,24,24)), bitmap.GetSubBitmap(wxRect(24,288,24,24)), wxString("区域"), wxString("切换到区域编辑模式。"), NULL);
    pToolBar->AddSeparator();
    pToolBar->AddRadioTool(MENU_ID_DRAW_PEN, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,312,24,24)), bitmap.GetSubBitmap(wxRect(24,312,24,24)), wxString("铅笔"), wxString("使用铅笔工具。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_DRAW_RECT, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,336,24,24)), bitmap.GetSubBitmap(wxRect(24,336,24,24)), wxString("矩形"), wxString("使用矩形工具。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_DRAW_CIRCLE, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,360,24,24)), bitmap.GetSubBitmap(wxRect(24,360,24,24)), wxString("椭圆"), wxString("使用椭圆工具。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_DRAW_FILL, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,384,24,24)), bitmap.GetSubBitmap(wxRect(24,384,24,24)), wxString("料桶"), wxString("使用图块填充区域。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_DRAW_SHADOW, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,408,24,24)), bitmap.GetSubBitmap(wxRect(24,408,24,24)), wxString("影笔"), wxString("添加或清除墙壁和建筑的阴影。"), NULL);
    pToolBar->AddSeparator();
    pToolBar->AddRadioTool(MENU_ID_SCALE_1_1, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,432,24,24)), bitmap.GetSubBitmap(wxRect(24,432,24,24)), wxString("1:1"), wxString("以 1:1 的比例显示地图。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_SCALE_1_2, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,456,24,24)), bitmap.GetSubBitmap(wxRect(24,456,24,24)), wxString("1:2"), wxString("以 1:2 的比例显示地图。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_SCALE_1_4, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,480,24,24)), bitmap.GetSubBitmap(wxRect(24,480,24,24)), wxString("1:4"), wxString("以 1:4 的比例显示地图。"), NULL);
    pToolBar->AddRadioTool(MENU_ID_SCALE_1_8, wxT("tool"), bitmap.GetSubBitmap(wxRect(0,504,24,24)), bitmap.GetSubBitmap(wxRect(24,504,24,24)), wxString("1:8"), wxString("以 1:8 的比例显示地图。"), NULL);
    pToolBar->AddSeparator();


pToolbar->AddTool(NARMAL) 若干次



    pToolBar->Realize();

    for (int i = MENU_ID_FILE_SAVE_PROJECT; i <= MENU_ID_HELP_DECUMENT; i++)
        pToolBar->EnableTool(i, false);
中间有一部分,我都是AddRadioTool的,这之间加了一些分割线。

问题1:
我给每一个按钮定义了两个图标,一个是enable(true)时显示彩色图标,一个enable(false)显示灰色图标。。
但是......我AddRadioTool后pToolBar->EnableTool(i, false),AddRadioTool第一个图标,明明已经disable,仍然显示出了彩色图标,而不是灰色的....这个应该怎么解决???

PS:图标我没有弄错...用AddTool(Normal),做实验,图标灰色和彩色一切正常.但是换成AddRadioTool就有问题

问题2:
代码中,图标是这么添加的
AddTool 分割线 AddRadioTool 分割线 AddRadioTool 分割线 AddRadioTool 分割线 AddTool
我将所有图标enable之后
问题来了..第一次AddRadioTool的三个图标,没有任何问题,但是 分割线之后再AddRadioTool的那些图标,和AddTool(Notmal类型)的图标一模一样了,根本不是 这一组,按一个,其他的就弹起来这种的...这个是什么问题啊?

求教,谢谢解答!!!!
Attachments
未标题-3.png
未标题-3.png (13.91 KiB) Viewed 6464 times

secondsen
Earned a small fee
Earned a small fee
Posts: 18
Joined: Tue Apr 02, 2013 4:14 pm

Re: 有关于toolbar中AddRadioTool添加的按钮的问题

Post by secondsen » Mon Apr 22, 2013 12:02 pm

问题2以解决,求教问题1 :D

secondsen
Earned a small fee
Earned a small fee
Posts: 18
Joined: Tue Apr 02, 2013 4:14 pm

Re: 有关于toolbar中AddRadioTool添加的按钮的问题

Post by secondsen » Wed Apr 24, 2013 3:08 pm

我试了一下wxITEM_CHECK(同addCheckTool)也是一样的

只要是选中的tool,disable之后,显示的就是彩色图标。。没选中的图标 disable之后是正常的

Post Reply