onpaint事件出问题啦。帮忙看一下,不难!!(20分)

  • 主题发起人 主题发起人 nzfboy
  • 开始时间 开始时间
N

nzfboy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在2000下开发的程序中有一段:hind.以用来当form重画时,隐藏窗体。
在2000下成功实现。但同一程序,在98环境时却无法响应onpaint事件!!
为什么?如何搞定?
 
在onpaint里面hide?不知有什么应用,此时窗口怎么也不会显示,show,active等都会引发paint
,但硬是要的话我在win me下测试了没问题。
 
我加hide的目的就是要窗体隐藏。但就是不执行。就连把hide换成showmessage('hkhkh')
也不执行。
 
form1.visible:=false;
 
没问题,可以执行的,我在Windows 98和Windows me下都实验了。
仅仅创建一个新的Application,然后在form的onpaint里面加上Hide,而已。
将你的程序重新在98下编译实验一下。
 
我觉得在2000下做了以后,在98下跑时,由于系统原因,98无法触发onpaint事件。
可是如何解决呢?
 
那就在98下编译,看2000下是否能运行,如果还不行,大不了在两个平台下分别编译了。
这是我的笨方法,因为目前还没有遇到这个情况,只能这么想,没想到其他解决办法。
也许borland的某个选项可以,这就不知道
 
重画要hide????
 
我的hide是我的目的。我要程序一启动就隐藏起来。但它就是不运行它。
 
你试试找个TRAYICON控件,做成托盘程序,你既然把主窗体不给人看,那总要有激活的方法吧。

托盘程序或是服务程序,或者是个普通的,但一起动就自动最小化,且不在任务栏上显示的程序。
第三种方法的实现很简单,直接设主窗体的。windowstate:=wsminimized;
然后用api让他别在任务栏上显示就是了。
 
在 procject 中创建mainform前, Application.ShowMainForm:=false
就不显示maimform了嘛
 
还可以通过Win32API的ShowWindow来隐藏。
 
你知道吗? 你的问题的提法很乱。让人琢磨不透。根本就是错误的。
源代码copy来看看。
 
后退
顶部