回 帖 发 新 帖 刷新版面

主题:怎样保持工具条的按钮被按下的状态?

用API作了个工具条,目前需要解决两个小问题:
1. 按钮被按下后,需要保持住被按下的状态,直到再次被点击时才恢复原状;
2. 有一组按钮,同一时间只有一个才能被选择。

恳请有经验的大虾指点一二,有例程代码更好,感激不尽!

下面是我的代码,请大家指教:

HWND platform::createToolBar(HWND hWnd, HINSTANCE hInst)
{
#define NUM_BUTTONS    10
HWND    m_hwnd;

TBADDBITMAP tbab;
char szTBStrings[] = "tip1\0tip2\0tip3\0tip4\0\0";

// Create a toolbar.
m_hwnd = CreateWindowEx(0, TOOLBARCLASSNAME, (LPSTR) NULL,
            WS_CHILD | WS_VISIBLE | WS_BORDER | TBSTYLE_TOOLTIPS |
            WS_CLIPSIBLINGS | WS_CLIPCHILDREN , 
            0, 0, 0, 0,
            hWnd, (HMENU) IDR_TOOLBAR,
            hInst, NULL);

SendMessage (m_hwnd, TB_BUTTONSTRUCTSIZE, (WPARAM) sizeof(TBBUTTON), 0);
tbab.hInst = GetModuleHandle(NULL);
tbab.nID = IDR_TOOLBAR;

SendMessage(m_hwnd, TB_ADDBITMAP, (WPARAM) NUM_BUTTONS,(LPARAM) (LPTBBUTTON) &tbab);

TBBUTTON tbb[] = 
{
//  int iBitmap;    int idCommand;     BYTE fsState;     BYTE fsStyle;
{0, IDM_BUTTON1,TBSTATE_ENABLED, TBSTYLE_BUTTON,  0,0, 0, 0 },
{1, IDM_BUTTON2,TBSTATE_ENABLED, TBSTYLE_BUTTON,  0,0, 0, 1 },
......    
};

SendMessage(m_hwnd, TB_ADDBUTTONS, (WPARAM) NUM_BUTTONS ,(LPARAM) (LPTBBUTTON) &tbb);
//SendMessage(m_hwnd, TB_ADDSTRING, 0, (LPARAM)szTBStrings);

return m_hwnd;
}

回复列表 (共2个回复)

沙发

截WM_BUTTONUP消息

板凳

消息我可以截到,问题是该怎样做才能保持住按钮被按下的状态?

我来回复

您尚未登录,请登录后再回复。点此登录或注册