怎样改变其他程序窗体的字体?(100分)

  • 主题发起人 主题发起人 devil_li
  • 开始时间 开始时间
D

devil_li

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样改变其他程序窗体的字体?<br>我用 &nbsp;SendMessage(H, WM_SETFONT, FontDialog.Font.Handle, 1);<br>对自己的窗体可以,对其他程序的窗体只能设成系统字体。为什么?
 
var<br>icount:integer;<br>begin<br>&nbsp;for icount:=0 &nbsp;to application.ComponentCount-1 do<br>&nbsp;begin<br>&nbsp; &nbsp;if (application.Components[icount].Classtype = Tform) then<br>&nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; (application.Components[icount] as Tform).font.Size:=10;<br>&nbsp; &nbsp;end;<br>&nbsp;end;<br><br>end;
 
不会吧?没看到我写的是:<br>改变其他程序窗体的字体?吗?<br>不是在本程序中查找
 
我觉得改变字体还是程序自己改变才可行!<br><br>你的第2个程序只不过需要给第1个发个通知消息,在第1个程序的这个消息处理函数中,你<br>把字体改了就是了,我还没有见过第2个程序直接改第1个程序的字体的(是不是我太寡闻?)
 
用findwindow找到你要窗口的句柄,然后用你上面写的方法
 
我需要改变字体的窗口是任意的窗体,可能是别人的窗体,所以不可能相应消息.<br>对于"我还没有见过第2个程序直接改第1个程序的字体的"<br>用我最上面说的方法,我可以直接改第1个程序的字体,只不过只能改成系统字体
 
我用CreateRemoteThread或者插入DLL的方法在另外一个进程中执行WM_SETFONT成功实现了修改字体样式。但是不能够修改字体颜色,因为Windows的字体信息HFONT不包含颜色信息。请教高手如何改变另一个进程中窗体的字体颜色。
 
后退
顶部