400 分求解(300分)

  • 主题发起人 主题发起人 PENGS
  • 开始时间 开始时间
P

PENGS

Unregistered / Unconfirmed
GUEST, unregistred user!
在 Windows 系统中有一个 ToolBarWin32 的类, 其类似于 Delphi 中的 ToolBar
已知 ToolBarWin32 的句柄 AHandle, 现在想求得 ToolBar上每个按钮 (Button) 的相关信
息,如按钮的标题 (pszText), 图像(iImage) 等并想更改之.
我试着用以下方法, 但没通过?

//TTBButtonInfo 与 TB_SETBUTTONINFO 在 CommCtrl 中声明
var
; tbiSet : TTBButtonInfo;
begin
; ....
; //ParentHandle 是这个 ToolBar 所在的窗口句柄
; AHandle := FindWindowEx(ParentHandle, 0, 'ToolBarWin32', nil);
; tbiSet.cbSize := SizeOf(tbiSet);
; tbiSet.dwMask := TBIF_TEXT;
; tbiSet.cchText := 255;
; tbiSet.Cx := 80;
; SendMessage(AHandle, TB_GETBUTTONINFO, 1, LongInt(@tbiSet));

; ShowMessage(tbiSet.pszText)
; ....
end;


程序运行后没有得到任何信息。不知是什么地方有误?
我在以下地址得到相关说明; 但仍没能解决问题/
http://news.devx.com/cgi-bin/dnewsweb.exe?cmd=article&group=vb.general&item=43166

在此奉上 400 分, 盼有高手能解决我的难题。
(希望 400 分能有人拿走)
 
简单试了一下,下面几个功能是可以实现的:
; BtnCount := SendMessage(HToolBar, TB_BUTTONCOUNT, 0, 0); //按钮的个数,包括分隔条
; SendMessage(GetTBHandle, TB_CUSTOMIZE, 0, 0); //弹出自定义窗口
; //在ShowCaptions的时候能正常得到按钮的Text:
; ; ; SetLength(S, 255);
; ; ; SetLength(S, SendMessage(HToolBar, TB_GETBUTTONTEXT, MakeLong(I, 250), Longint(@S[1])));

有时间再帮你看看。
 
// CreateAToolBar - creates a toolbar and adds the initial set of ;
// ; ; buttons to it.
// Returns the handle of the toolbar if successful or NULL otherwise.
// hwndParent - handle of the parent window
HWND CreateAToolBar(HWND hwndParent)
{
; ; HWND hwndTB;
; ; TBADDBITMAP tbab;
; ; TBBUTTON tbb[3];
; ; char szBuf[16];
; ; int iCut, iCopy, iPaste;
;
; ; // Ensure that the common control DLL is loaded.
; ; InitCommonControls();
;
; ; // Create a toolbar that the user can customize and that has a

; ; // tooltip associated with it.
; ; hwndTB = CreateWindowEx(0, TOOLBARCLASSNAME, (LPSTR) NULL,
; ; ; ; WS_CHILD | TBSTYLE_TOOLTIPS | CCS_ADJUSTABLE,
; ; ; ; 0, 0, 0, 0, hwndParent, (HMENU) ID_TOOLBAR, g_hinst, NULL);
;
; ; // Send the TB_BUTTONSTRUCTSIZE message, which is required for
; ; // backward compatibility.
; ; SendMessage(hwndTB, TB_BUTTONSTRUCTSIZE,
; ; ; ; (WPARAM) sizeof(TBBUTTON), 0);
;
; ; // Add the bitmap containing button images to the toolbar.

; ; tbab.hInst = g_hinst;
; ; tbab.nID ; = IDB_BUTTONS;
; ; SendMessage(hwndTB, TB_ADDBITMAP, (WPARAM) NUM_BUTTON_BITMAPS,
; ; ; ; (WPARAM) &tbab);
;
; ; // Add the button strings to the toolbar.
; ; LoadString(g_hinst, IDS_CUT, (LPSTR) &szBuf, MAX_LEN);
; ; iCut = SendMessage(hwndTB, TB_ADDSTRING, 0, (LPARAM) (LPSTR) szBuf);
;
; ; LoadString(g_hinst, IDS_COPY, (LPSTR) &szBuf, MAX_LEN);
; ; iCopy = SendMessage(hwndTB, TB_ADDSTRING, (WPARAM) 0,
; ; ; ; (LPARAM) (LPSTR) szBuf);

;
; ; LoadString(g_hinst, IDS_PASTE, (LPSTR) &szBuf, MAX_LEN);
; ; iPaste = SendMessage(hwndTB, TB_ADDSTRING, (WPARAM) 0,
; ; ; ; (LPARAM) (LPSTR) szBuf);
;
; ; // Fill the TBBUTTON array with button information, and add the
; ; // buttons to the toolbar.
; ; tbb[0].iBitmap = BMP_CUT;
; ; tbb[0].idCommand = IDM_CUT;
; ; tbb[0].fsState = TBSTATE_ENABLED;
; ; tbb[0].fsStyle = TBSTYLE_BUTTON;
; ; tbb[0].dwData = 0;
; ; tbb[0].iString = iCut;
;
; ; tbb[1].iBitmap = BMP_COPY;

; ; tbb[1].idCommand = IDM_COPY;
; ; tbb[1].fsState = TBSTATE_ENABLED;
; ; tbb[1].fsStyle = TBSTYLE_BUTTON;
; ; tbb[1].dwData = 0;
; ; tbb[1].iString = iCopy;
;
; ; tbb[2].iBitmap = BMP_PASTE;
; ; tbb[2].idCommand = IDM_PASTE;
; ; tbb[2].fsState = TBSTATE_ENABLED;
; ; tbb[2].fsStyle = TBSTYLE_BUTTON;
; ; tbb[2].dwData = 0;
; ; tbb[2].iString = iPaste;
;
; ; SendMessage(hwndTB, TB_ADDBUTTONS, (WPARAM) NUM_BUTTONS,
; ; ; ; (LPARAM) (LPTBBUTTON) &tbb);

;
; ; ShowWindow(hwndTB, SW_SHOW);
; ; return hwndTB;
}
;
 
The functions, messages, notification messages, and structures are associated
with toolbars. These elements can be grouped as follows.

Toolbar Creation

CreateToolbarEx
TB_BUTTONSTRUCTSIZE
TB_SETPARENT ;

Toolbar Size and Position

TB_AUTOSIZE
TB_SETBUTTONSIZE

Tooltip Style

TB_GETTOOLTIPS
TB_SETTOOLTIPS
TTN_NEEDTEXT

Toolbar Bitmaps

COLORMAP
CreateMappedBitmap
TB_ADDBITMAP
TB_CHANGEBITMAP
TB_GETBITMAP
TB_GETBITMAPFLAGS
TB_SETBITMAPSIZE
TBADDBITMAP

Toolbar Strings

TB_ADDSTRING
TB_GETBUTTONTEXT

Toolbar Buttons

TB_ADDBUTTONS
TB_BUTTONCOUNT
TB_COMMANDTOINDEX
TB_DELETEBUTTON
TB_GETBUTTON
TB_GETITEMRECT
TB_GETROWS
TB_INSERTBUTTON
TB_SETCMDID
TB_SETROWS
TBBUTTON
TBNOTIFY ;

Toolbar Button States

TB_CHECKBUTTON
TB_ENABLEBUTTON
TB_GETSTATE
TB_HIDEBUTTON
TB_INDETERMINATE
TB_ISBUTTONCHECKED
TB_ISBUTTONENABLED
TB_ISBUTTONHIDDEN
TB_ISBUTTONINDETERMINATE
TB_ISBUTTONPRESSED
TB_PRESSBUTTON
TB_SETSTATE

Toolbar Customization

TB_CUSTOMIZE
TB_SAVERESTORE
TBN_BEGINADJUST
TBN_BEGINDRAG
TBN_CUSTHELP
TBN_ENDADJUST
TBN_ENDDRAG
TBN_GETBUTTONINFO
TBN_QUERYDELETE
TBN_QUERYINSERT
TBN_RESET
TBN_TOOLBARCHANGE
TBSAVEPARAMS ;

;
 
用了这么多分还是没人能解决。
唉.......唉.......唉.......唉.......唉.......
 
我知道
Mail: NETTOO@263.net
 
多人接受答案了。
 
后退
顶部