现在在做一个课程设计。用SDK做个简易CAD,我想做个类试windows自带的画图程序里的浮动工具条。
在网上找到的例子都是mfc做的。快昏死了...
谁能告诉我使用ToolBar的方法啊?

解决方案 »

  1.   

    用 SDK 做浮动工具条, 很复杂的了. 相当于用 铁锤,起子之类的原始工具 造飞机一样.
      

  2.   

    给点思路什么的吧...只当是学习了...
    怎么样把ToolBar加载进来..我都还没找到..
    不知道是我的msdn太老了,还是自己方法不对..
    浮动的复杂..那学习下不浮动的也好啊..
    我现在只求..在主窗口上加载进来,然后在工具条上处理按钮的机制。
    嫌分少的话..我可以在加.
    谢谢啦....
      

  3.   

    MSDN  有个 SDK 的例子:
    TBBUTTON tbButtons[] = {
       { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
       { 0, IDM_VIEWCHART,        TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
       { 1, IDM_VIEWALERT,        TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
       { 2, IDM_VIEWLOG,          TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
       { 3, IDM_VIEWREPORT,       TBSTATE_ENABLED,   TBSTYLE_CHECKGROUP, 0 },
       { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
       { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
       { 4, IDM_TOOLBARADD,       TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
       { 5, IDM_TOOLBARMODIFY,    TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
       { 6, IDM_TOOLBARDELETE,    TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
       { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
       { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
       { 7, IDM_TOOLBARREFRESH,   TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
       { 8, IDM_OPTIONSBOOKMARK,  TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
       { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
       { 0, 0,                    TBSTATE_ENABLED,   TBSTYLE_SEP,        0 },
       { 9, IDM_TOOLBAROPTIONS,   TBSTATE_ENABLED,   TBSTYLE_BUTTON,     0 },
    } ;
    #define TB_ENTRIES sizeof(tbButtons)/sizeof(tbButtons[0])BOOL CreateToolbarWnd (HWND hWnd)
    {   hWndToolbar = CreateToolbarEx (hWnd,
          WS_CHILD | WS_BORDER | WS_VISIBLE,
          IDM_TOOLBARID,
          10,                  // number of tools inside the bitmap
          hInstance,
          idBitmapToolbar,     // bitmap resource ID (can't use MAKEINTRESOURCE)
          tbButtons,
          TB_ENTRIES,0,0,0,0,sizeof(TBBUTTON)) ;   return (hWndToolbar ? TRUE : FALSE) ;}  // ToolbarInitializeApplication
      

  4.   

    //自定义工具栏
    TBBUTTON tbButton[]=
    {
    0,IDM_ADDTASK,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    1,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    2,IDM_DELTETE,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    0,0,TBSTATE_ENABLED,TBSTYLE_SEP,0,0,0,0,
    3,IDM_PROPERTY,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    4,IDM_RENAME,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    5,IDM_BEGIN,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    6,IDM_STOP,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    7,IDM_HELP,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    8,IDM_EXIT,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0,
    };
    处理case WM_CREATE:
    /创建工具栏 
    hToolBar=CreateToolbarEx(hwnd,
    WS_CHILD|WS_BORDER|WS_VISIBLE|TBSTYLE_FLAT
    |TBSTYLE_TOOLTIPS,
    ID_TOOLBAR,
    10,//该工具栏包含9个图形按钮
    hInst,//使用系统提供的图形按钮
    IDB_TOOLBAR,
    tbButton,
    10,
    0,0,
    0,0,
    sizeof(TBBUTTON));
    其中IDB_TOOLBAR为位图资源!
    可以在资源中加入!但必须为16*16大小!
      

  5.   

    处理case WM_NOTIFY:
    //设置工具栏提示的文本
    lpnmhdr=(LPNMHDR)lParam;
    if (lpnmhdr->code==TTN_NEEDTEXT)
    {
    lpttext=(LPTOOLTIPTEXT)lParam;
    switch(lpttext->hdr.idFrom)
    {
    case IDM_ADDTASK:
    lpttext->lpszText="添加任务";
    break; case IDM_NEW:
    lpttext->lpszText="新建下载任务";
    break; case IDM_DELTETE:
    lpttext->lpszText="删除任务";
    break; case IDM_PROPERTY:
    lpttext->lpszText="属性";
    break; case IDM_RENAME:
    lpttext->lpszText="重命名";
    break; case IDM_BEGIN:
    lpttext->lpszText="开始";
    break;
    case IDM_STOP:
    lpttext->lpszText="暂停";
    break;
    case IDM_HELP:
    lpttext->lpszText = "帮助";
    break;
    case IDM_EXIT:
    lpttext->lpszText = "退出";
    break; } 
      

  6.   

    处理case WM_COMMAND:
    则是工具栏的具体消息处理:
    例如:
    switch (LOWORD (wParam))
    {
      

  7.   

    谢谢楼上2位了...我先去找本《win32程序员参考大全》看看在说吧...