把按钮的parent设为toolbar行不行?
解决方案 »
- Delphi如何读取LRC文件??
- 如何在程序中复制IE临时目录下的文件(如:C:\Documents and Settings\myname\Local Settings\Temporary Internet Files)
- 这个SQL语句哪里错了?
- delphi和borland C++bulider的区别。
- 请教一个关于框架为什么不能显示的问题
- 用DELPHI 写的Dll 里面的方法反回BOOLEAN值时,什么在VB中调时,结果都认为是TRUE?
- 小女子关于数据库连接的一点看法,请指教
- 急!关于mysql的blob字段!高分相送。
- 字符串转换日期问题
- 关于的delphi数据库的问题
- 找到一个XP控件包,大家看看,是哪国的
- 谁用过createfile在内存中创建过文件吗?
启动记事本,给记事本加一个按钮
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
proc : longint;
form_hw,hn:HWND;
implementation{$R *.DFM}function WndProc2(hwnd: HWnd; Msg: UINT; wParam: wParam;
lParam: LPARAM) : integer; Far; stdcall;
begin
CASE Msg OF
WM_LBUTTONUP:
begin
showmessage('I'm Clicked');
end
END;
Result := CallWindowProc(TFNWndProc(proc), hwnd, Msg, wParam, lParam);
end;procedure TForm1.Button1Click(Sender: TObject);
var
l:longint;
rcw : Word;
begin
rcw := WinExec('Notepad.exe', SW_SHOWNORMAL);//启动记事本
if rcw<=32 then //无法启动记事本
begin
Application.Terminate;
end ; while true do//确保记事本启动
begin
form_hw:=FindWindow(nil,'记事本');//这儿可改为你要的ToolBar的句柄
if boolean(form_hw) then break;
end; hn := CreateWindow('BUTTON', 'ok',WS_VISIBLE + WS_CHILD, 0, 0, 30, 20,form_hw, 0, 0,nil);//left=0,top=0,width=30 height=20
proc := GetWindowLong(hn, GWL_WNDPROC);
l := longint(@WndProc2);//设定事件
SetWindowLong(hn, GWL_WNDPROC, l);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if boolean(form_hw) then//启动
SendMessage(form_hw, wm_close,0,0);
end;end. -------------------------------------------------------------------
风过西窗客渡舟船无觅处
年年一川新草遥看却似旧
再Send一个WM_PAINT消息。
toplor(霜天晓竹) 给的程序有用,比如截获Panel的WM_ERASEBKGND消息就用的是他的大部分代码,特此感谢。