TB_BUTTONCOUNT 如何使用 |
尚未結案
|
sam_000
一般會員 發表:27 回覆:47 積分:14 註冊:2003-09-15 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
|
tonytop
中階會員 發表:6 回覆:114 積分:89 註冊:2003-12-04 發送簡訊給我 |
如Zard是正確滴,另外元件本身也有計數BUTTON的功能(TB.ButtonCount),
兩種得到的結果是一樣的,何必要用SDK較麻煩呢?
procedure TForm1.Button1Click(Sender: TObject); var i:Integer; begin Label1.Caption:=IntToStr(TB.ButtonCount);//這樣也行 i:= SendMessage(TB.Handle, TB_BUTTONCOUNT, 0, 0); //要uses Commctrl Label2.Caption:=IntToStr(i); end;忙盲茫 |
sam_000
一般會員 發表:27 回覆:47 積分:14 註冊:2003-09-15 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
引言: 兩位前輩的方法都可以用在delphi application內的toolbar上 如果我想用在系統工具列上算出button數似乎不行 可否請前輩在幫忙看看 謝謝 Wnd := FindWindow('Shell_TrayWnd', nil); Wnd := FindWindowEx(Wnd[1],0 , 'Button', nil); sam這樣做當然不行, 因為工具列根本不是Toolbar. 你所看到的工具列其實是一個Tab Control, 而且不是Shell_TrayWnd, 而是Shell_TrayWnd的Child ReBarWindow32的Child MSTaskSwWClass的Child SysTabControl32 解法如下, 記得要Import Commctrl unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Commctrl; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); Function EnumChildWnd(hChild: HWND; pParam: LPARAM): BOOL; stdcall; var szClassName: array[0..256] of Char; begin FillChar(szClassName, SizeOf(szClassName), 0); GetClassName(hChild, szClassName, SizeOf(szClassName)); // 找出 SysTabControl32 if szClassName = 'SysTabControl32' then begin HWND(Pointer(pParam)^) := hChild; end; Result := TRUE; end; var hShellTrayWnd, hSysTabWnd: HWND; begin hShellTrayWnd := FindWindow('Shell_TrayWnd', nil); if hShellTrayWnd = 0 then Exit; hSysTabWnd := 0; EnumChildWindows(hShellTrayWnd, @EnumChildWnd, LPARAM(@hSysTabWnd)); if hSysTabWnd <> 0 then begin // 利用Tab Control Notification Message TCM_GETITEMCOUNT取得數目. ShowMessage('工具列上共有 ' IntToStr(SendMessage(hSysTabWnd, TCM_GETITEMCOUNT, 0, 0)) ' 個Items'); end; end; end. |
sam_000
一般會員 發表:27 回覆:47 積分:14 註冊:2003-09-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |