Hamid_PaK
جمعه 04 اسفند 1385, 07:15 صبح
هر کاری کردم نشد که به یکی از دکمه های Toolbar یه برنامه از طریق SendMessage پیغام کلیک کردن رو ارسال کنم ...
کسی از دوستان اطلاعاتی در این باره داره ؟؟؟
type
TTBButton = packed record
iBitmap: Integer;
idCommand: Integer;
fsState: Byte;
fsStyle: Byte;
bReserved: array[1..2] of Byte;
dwData: Longint;
iString: Integer;
end;
TTBButtonInfo = packed record
cbSize: UINT;
dwMask: DWORD;
idCommand: Integer;
iImage: Integer;
fsState: Byte;
fsStyle: Byte;
cx: Word;
lParam: DWORD;
pszText: PChar;
cchText: Integer;
end;
TTBNotify = packed record
hdr: TNMHdr;
iItem: Integer;
tbButton: TTBButton;
cchText: Integer;
pszText: PChar;
end;
const
TBN_FIRST = 0-700; { toolbar }
TBN_LAST = 0-720;
TBCDRF_NOEDGES = $00010000; // Don't draw button edges
TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
TB_ENABLEBUTTON = WM_USER + 1;
TB_CHECKBUTTON = WM_USER + 2;
TB_PRESSBUTTON = WM_USER + 3;
TB_HIDEBUTTON = WM_USER + 4;
TB_INDETERMINATE = WM_USER + 5;
TB_MARKBUTTON = WM_USER + 6;
TB_ISBUTTONENABLED = WM_USER + 9;
TB_ISBUTTONCHECKED = WM_USER + 10;
TB_ISBUTTONPRESSED = WM_USER + 11;
TB_ISBUTTONHIDDEN = WM_USER + 12;
TB_ISBUTTONINDETERMINATE = WM_USER + 13;
TB_ISBUTTONHIGHLIGHTED = WM_USER + 14;
TB_SETSTATE = WM_USER + 17;
TB_GETSTATE = WM_USER + 18;
TB_ADDBITMAP = WM_USER + 19;
TB_ADDBUTTONSA = WM_USER + 20;
TB_ADDBUTTONSW = WM_USER + 68;
TB_INSERTBUTTONA = WM_USER + 21;
TB_INSERTBUTTONW = WM_USER + 67;
TB_DELETEBUTTON = WM_USER + 22;
TB_GETBUTTON = WM_USER + 23;
TB_BUTTONCOUNT = WM_USER + 24;
TB_COMMANDTOINDEX = WM_USER + 25;
TB_SAVERESTOREA = WM_USER + 26;
TB_ADDSTRINGA = WM_USER + 28;
TB_GETBUTTONTEXTA = WM_USER + 45;
TBN_GETBUTTONINFOA = TBN_FIRST-0;
TB_GETBUTTONINFOW = WM_USER + 63;
TB_SETBUTTONINFOW = WM_USER + 64;
TB_GETBUTTONINFOA = WM_USER + 65;
TB_SETBUTTONINFOA = WM_USER + 66;
TB_GETBUTTONINFO = TB_GETBUTTONINFOA;
TB_SETBUTTONINFO = TB_SETBUTTONINFOA;
TB_SAVERESTOREW = WM_USER + 76;
TB_ADDSTRINGW = WM_USER + 77;
TB_GETBUTTONTEXTW = WM_USER + 75;
TBN_GETBUTTONINFOW = TBN_FIRST-20;
TB_SAVERESTORE = TB_SAVERESTOREA;
TB_ADDSTRING = TB_ADDSTRINGA;
TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA;
TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA;
TBN_DROPDOWN = TBN_FIRST-10;
TBN_CLOSEUP = TBN_FIRST-11;
TB_CUSTOMIZE = WM_USER + 27;
TB_GETITEMRECT = WM_USER + 29;
TB_BUTTONSTRUCTSIZE = WM_USER + 30;
TB_SETBUTTONSIZE = WM_USER + 31;
TB_SETBITMAPSIZE = WM_USER + 32;
TB_AUTOSIZE = WM_USER + 33;
TB_GETTOOLTIPS = WM_USER + 35;
TB_SETTOOLTIPS = WM_USER + 36;
TB_SETPARENT = WM_USER + 37;
TB_SETROWS = WM_USER + 39;
TB_GETROWS = WM_USER + 40;
TB_SETCMDID = WM_USER + 42;
TB_CHANGEBITMAP = WM_USER + 43;
TB_GETBITMAP = WM_USER + 44;
TB_REPLACEBITMAP = WM_USER + 46;
TB_SETINDENT = WM_USER + 47;
TB_SETIMAGELIST = WM_USER + 48;
TB_GETIMAGELIST = WM_USER + 49;
TB_LOADIMAGES = WM_USER + 50;
TB_GETRECT = WM_USER + 51; { wParam is the Cmd instead of index }
TB_SETHOTIMAGELIST = WM_USER + 52;
TB_GETHOTIMAGELIST = WM_USER + 53;
TB_SETDISABLEDIMAGELIST = WM_USER + 54;
TB_GETDISABLEDIMAGELIST = WM_USER + 55;
TB_SETSTYLE = WM_USER + 56;
TB_GETSTYLE = WM_USER + 57;
TB_GETBUTTONSIZE = WM_USER + 58;
TB_SETBUTTONWIDTH = WM_USER + 59;
TB_SETMAXTEXTROWS = WM_USER + 60;
TB_GETTEXTROWS = WM_USER + 61;
TB_GETOBJECT = WM_USER + 62; // wParam == IID, lParam void **ppv
TB_GETHOTITEM = WM_USER + 71;
TB_SETHOTITEM = WM_USER + 72; // wParam == iHotItem
TB_SETANCHORHIGHLIGHT = WM_USER + 73; // wParam == TRUE/FALSE
TB_GETANCHORHIGHLIGHT = WM_USER + 74;
TB_MAPACCELERATORA = WM_USER + 78; // wParam == ch, lParam int * pidBtn
TB_SETEXTENDEDSTYLE = WM_USER + 84; // For TBSTYLE_EX_*
TB_GETEXTENDEDSTYLE = WM_USER + 85; // For TBSTYLE_EX_*
TB_INSERTBUTTON = TB_INSERTBUTTONA;
TB_ADDBUTTONS = TB_ADDBUTTONSA;
{ WM_NOTIFY codes }
NM_FIRST = 0- 0; { generic to all controls }
NM_LAST = 0- 99;
NM_OUTOFMEMORY = NM_FIRST-1;
NM_CLICK = NM_FIRST-2;
NM_DBLCLK = NM_FIRST-3;
NM_RETURN = NM_FIRST-4;
NM_RCLICK = NM_FIRST-5;
NM_RDBLCLK = NM_FIRST-6;
NM_SETFOCUS = NM_FIRST-7;
NM_KILLFOCUS = NM_FIRST-8;
NM_CUSTOMDRAW = NM_FIRST-12;
NM_HOVER = NM_FIRST-13;
NM_NCHITTEST = NM_FIRST-14; // uses NMMOUSE struct
NM_KEYDOWN = NM_FIRST-15; // uses NMKEY struct
NM_RELEASEDCAPTURE = NM_FIRST-16;
NM_SETCURSOR = NM_FIRST-17; // uses NMMOUSE struct
NM_CHAR = NM_FIRST-18; // uses NMCHAR struct
var
Notify: TTBNotify;
begin
Notify.hdr.code := NM_CLICK;
Notify.iItem := 100;
SendMessage(hwndToolbar, WM_NOTIFY, 0, MakeLong(Integer(@Notify), 0));
end;
یا حق ...
کسی از دوستان اطلاعاتی در این باره داره ؟؟؟
type
TTBButton = packed record
iBitmap: Integer;
idCommand: Integer;
fsState: Byte;
fsStyle: Byte;
bReserved: array[1..2] of Byte;
dwData: Longint;
iString: Integer;
end;
TTBButtonInfo = packed record
cbSize: UINT;
dwMask: DWORD;
idCommand: Integer;
iImage: Integer;
fsState: Byte;
fsStyle: Byte;
cx: Word;
lParam: DWORD;
pszText: PChar;
cchText: Integer;
end;
TTBNotify = packed record
hdr: TNMHdr;
iItem: Integer;
tbButton: TTBButton;
cchText: Integer;
pszText: PChar;
end;
const
TBN_FIRST = 0-700; { toolbar }
TBN_LAST = 0-720;
TBCDRF_NOEDGES = $00010000; // Don't draw button edges
TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
TB_ENABLEBUTTON = WM_USER + 1;
TB_CHECKBUTTON = WM_USER + 2;
TB_PRESSBUTTON = WM_USER + 3;
TB_HIDEBUTTON = WM_USER + 4;
TB_INDETERMINATE = WM_USER + 5;
TB_MARKBUTTON = WM_USER + 6;
TB_ISBUTTONENABLED = WM_USER + 9;
TB_ISBUTTONCHECKED = WM_USER + 10;
TB_ISBUTTONPRESSED = WM_USER + 11;
TB_ISBUTTONHIDDEN = WM_USER + 12;
TB_ISBUTTONINDETERMINATE = WM_USER + 13;
TB_ISBUTTONHIGHLIGHTED = WM_USER + 14;
TB_SETSTATE = WM_USER + 17;
TB_GETSTATE = WM_USER + 18;
TB_ADDBITMAP = WM_USER + 19;
TB_ADDBUTTONSA = WM_USER + 20;
TB_ADDBUTTONSW = WM_USER + 68;
TB_INSERTBUTTONA = WM_USER + 21;
TB_INSERTBUTTONW = WM_USER + 67;
TB_DELETEBUTTON = WM_USER + 22;
TB_GETBUTTON = WM_USER + 23;
TB_BUTTONCOUNT = WM_USER + 24;
TB_COMMANDTOINDEX = WM_USER + 25;
TB_SAVERESTOREA = WM_USER + 26;
TB_ADDSTRINGA = WM_USER + 28;
TB_GETBUTTONTEXTA = WM_USER + 45;
TBN_GETBUTTONINFOA = TBN_FIRST-0;
TB_GETBUTTONINFOW = WM_USER + 63;
TB_SETBUTTONINFOW = WM_USER + 64;
TB_GETBUTTONINFOA = WM_USER + 65;
TB_SETBUTTONINFOA = WM_USER + 66;
TB_GETBUTTONINFO = TB_GETBUTTONINFOA;
TB_SETBUTTONINFO = TB_SETBUTTONINFOA;
TB_SAVERESTOREW = WM_USER + 76;
TB_ADDSTRINGW = WM_USER + 77;
TB_GETBUTTONTEXTW = WM_USER + 75;
TBN_GETBUTTONINFOW = TBN_FIRST-20;
TB_SAVERESTORE = TB_SAVERESTOREA;
TB_ADDSTRING = TB_ADDSTRINGA;
TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA;
TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA;
TBN_DROPDOWN = TBN_FIRST-10;
TBN_CLOSEUP = TBN_FIRST-11;
TB_CUSTOMIZE = WM_USER + 27;
TB_GETITEMRECT = WM_USER + 29;
TB_BUTTONSTRUCTSIZE = WM_USER + 30;
TB_SETBUTTONSIZE = WM_USER + 31;
TB_SETBITMAPSIZE = WM_USER + 32;
TB_AUTOSIZE = WM_USER + 33;
TB_GETTOOLTIPS = WM_USER + 35;
TB_SETTOOLTIPS = WM_USER + 36;
TB_SETPARENT = WM_USER + 37;
TB_SETROWS = WM_USER + 39;
TB_GETROWS = WM_USER + 40;
TB_SETCMDID = WM_USER + 42;
TB_CHANGEBITMAP = WM_USER + 43;
TB_GETBITMAP = WM_USER + 44;
TB_REPLACEBITMAP = WM_USER + 46;
TB_SETINDENT = WM_USER + 47;
TB_SETIMAGELIST = WM_USER + 48;
TB_GETIMAGELIST = WM_USER + 49;
TB_LOADIMAGES = WM_USER + 50;
TB_GETRECT = WM_USER + 51; { wParam is the Cmd instead of index }
TB_SETHOTIMAGELIST = WM_USER + 52;
TB_GETHOTIMAGELIST = WM_USER + 53;
TB_SETDISABLEDIMAGELIST = WM_USER + 54;
TB_GETDISABLEDIMAGELIST = WM_USER + 55;
TB_SETSTYLE = WM_USER + 56;
TB_GETSTYLE = WM_USER + 57;
TB_GETBUTTONSIZE = WM_USER + 58;
TB_SETBUTTONWIDTH = WM_USER + 59;
TB_SETMAXTEXTROWS = WM_USER + 60;
TB_GETTEXTROWS = WM_USER + 61;
TB_GETOBJECT = WM_USER + 62; // wParam == IID, lParam void **ppv
TB_GETHOTITEM = WM_USER + 71;
TB_SETHOTITEM = WM_USER + 72; // wParam == iHotItem
TB_SETANCHORHIGHLIGHT = WM_USER + 73; // wParam == TRUE/FALSE
TB_GETANCHORHIGHLIGHT = WM_USER + 74;
TB_MAPACCELERATORA = WM_USER + 78; // wParam == ch, lParam int * pidBtn
TB_SETEXTENDEDSTYLE = WM_USER + 84; // For TBSTYLE_EX_*
TB_GETEXTENDEDSTYLE = WM_USER + 85; // For TBSTYLE_EX_*
TB_INSERTBUTTON = TB_INSERTBUTTONA;
TB_ADDBUTTONS = TB_ADDBUTTONSA;
{ WM_NOTIFY codes }
NM_FIRST = 0- 0; { generic to all controls }
NM_LAST = 0- 99;
NM_OUTOFMEMORY = NM_FIRST-1;
NM_CLICK = NM_FIRST-2;
NM_DBLCLK = NM_FIRST-3;
NM_RETURN = NM_FIRST-4;
NM_RCLICK = NM_FIRST-5;
NM_RDBLCLK = NM_FIRST-6;
NM_SETFOCUS = NM_FIRST-7;
NM_KILLFOCUS = NM_FIRST-8;
NM_CUSTOMDRAW = NM_FIRST-12;
NM_HOVER = NM_FIRST-13;
NM_NCHITTEST = NM_FIRST-14; // uses NMMOUSE struct
NM_KEYDOWN = NM_FIRST-15; // uses NMKEY struct
NM_RELEASEDCAPTURE = NM_FIRST-16;
NM_SETCURSOR = NM_FIRST-17; // uses NMMOUSE struct
NM_CHAR = NM_FIRST-18; // uses NMCHAR struct
var
Notify: TTBNotify;
begin
Notify.hdr.code := NM_CLICK;
Notify.iItem := 100;
SendMessage(hwndToolbar, WM_NOTIFY, 0, MakeLong(Integer(@Notify), 0));
end;
یا حق ...