如题,如何使用win32 API的方式实现在工具栏中加入一个comboBox?能否给个例子,或贴代码

解决方案 »

  1.   

    CreateWindowEx(
         WS_EX_LEFT,
         _T("COMBOBOX"),
         _T("ComboBoxTest"),
         WS_CHILDWINDOW | WS_VISBLE | WS_TABSTOP | CBS_DROPDOWN,
         x,
         y,
         nWidth,
         nHeight,
         hWndToolBar,
         0,
         NULL,
         NULL);把父窗口的句柄设置为工具栏的窗口句柄。
      

  2.   

    1. 取到工具栏的窗口句柄
    2. 用CreateWindowsEx创建一个COMBOBOX
      

  3.   

    工具栏就是一个窗口,得到句柄或指针后再用CreateWindowEx在需要的位置放置combobox。
      

  4.   

    前面的已经说了,把TOOLBAR作为父窗口创建combobox,但是要不影响工具栏原来的按钮,需要做些工作,先添加一个工具栏按钮,该按钮是占位用,腾出容纳combobox的空间:TBBUTTON tbButton;
       tbButton.idCommand = idCmd; //combobox的ID
       tbButton.fsState = TBSTATE_INDETERMINATE;
       tbButton.fsStyle = TBSTYLE_BUTTON;
       
    SendMessage(hWndToolBar,TB_INSERTBUTTON,index,(LPARAM)&tbButton);//index为插入位置,第index个按钮TBBUTTONINFO tb;
    tb.cbSize = sizeof(TBBUTTONINFO);
    tb.dwMask = TBIF_SIZE;
    tb.cx = width + 4;//width为combobox的宽度
    SendMessage(hWndTool,TB_SETBUTTONINFO,idCmd,(LPARAM)&tb);RECT rc;
    SendMessage(hWndTool,TB_GETITEMRECT,(WPARAM)index,(LPARAM)&rc);然后把combobox移动到该rc位置遮住按钮就OK。
      

  5.   

    ringphone,
    Thanks very much. What you describe is the perfect one.