当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 东南大学 梁云 Windows系统是由消息机制驱动的,每个线程如果建立了一个窗口,则由系统分配一个消息队列用于窗口消息的处理。
 

 

    摘要:internet/intranet在九十年代可能是最流行的计算机术语了,不管是计算机行业内的人士还是计算机外的人士,都会使用internet/intranet,有的查资料,有的是宣传自己和公司,甚至有许多以前从没有想到用internet的东西现在也在用internet来解决,比如有的程控数字计算机维护用internet来解决。在这一切应用之中,基于web server的应用程序的开发是基本点,但如......
    摘要:随着internet/intranet的飞速发展和普遍应用,对在internet/intranet上的应用程序的需求越来越多,于是java和activex form应运而生,但是,现在internet的带宽还非常低下的情况下,这种基于client端的应用是非常困难的,下载一个非常小、功能非常简单的java applet就需要非常长的时间,而且还存在着用户使用浏览器不支持这种新技术的可能。在这种情况......


Delphi中SendMessage使用技巧
上一页   ...   //发送消息以确定显示区域的宽度

  sendmessage(combobox1.handle, 【程序编程相关:揭开Outlook Express编辑器

【推荐阅读:Delphi中的字符串

cb_setdroppedwidth,maxwidth,0); 【扩展信息:Fastreport3.14的中文PDF

利用sendmessage函数还可以实现一些有趣的效果,例如在按钮的click事件中加入如下语句:

sendmessage(button.handle,bm_setstyle,

bs_radiobutton,1);

运行后点击按钮,就可以把按钮变成一个收音机按钮.

控件接收sendmessage消息

上面讨论了用sendmessage向控件发送消息的过程.但凡事有利就有弊,用sendmessage发送的消息在处理上存在着一定困难.因为该消息不经过消息队列,所以无法用onmessage方式来指定对消息的响应,甚至用hookmainwindow也不行,因为消息直接发送到控件,绕过了主窗体.要对这种类型的消息作出响应,需要重载控件的wndproc方法.

例如,对于一个列表框,滚动条的滚动消息就是用sendmessage方式发送的,因此该消息不在tlistbox的事件列表中.下面是处理控件响应该滚动消息的具体步骤.

1.首先从tlistbox继承一个tmylistbox类,并重载wndproc方法.在程序中加入下列定义:

type

tmylistbox=class(tlistbox)

private

procedure wndproc(var msg: tmessage);  

override;

//重载wndproc,处理发送到控件的消息

public

end;

其中wndproc方法指定控件对消息的响应,输入参数是tmessage类型,该数据类型是一个记录,包含了消息代码与消息的参数,消息参数可以用longint或word方式获得.

2.对滚动事件做出响应,在wndproc方法中加入如下处理代码:

  if (msg.msg=wm_vscroll) and  

(msg.wparamlo=sb_endscroll) then

   begin

//获得鼠标位置对应的列


...   下一页
 ·取当前所有的拨号连接的程式    »显示摘要«
    摘要:{+++++++++++++++++++++++ 取当前所有的拨号连接的程式; 参数为传入的列表,过程成功为参数付值且返回值为真 否则为假; 调用方法类似 if getentries(memo1.lines) then begin end else begin end; date:2001/03/07 12:30-----13:32 remark: +......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE