首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

怎么解决拖动表单出现得activex控件的乱动有关问题

2012-09-14 
如何解决拖动表单出现得activex控件的乱动问题?表单的风格是自己画的,为了能够拖动加了如下代码:*********

如何解决拖动表单出现得activex控件的乱动问题?
表单的风格是自己画的,为了能够拖动加了如下代码:
*********************************************************
local liHWnd, ;
liHDC, ;
liPixelsPerInchX, ;
liPixelsPerInchY

* 定义一些常数。

#define cnLOG_PIXELS_X 88
* 来自 WINGDI.H
#define cnLOG_PIXELS_Y 90
* 来自From WINGDI.H
#define cnTWIPS_PER_INCH 1440
* 每英寸1440 缇

* 定义一些 Windows API 函数

declare integer GetActiveWindow in WIN32API
declare integer GetDC in WIN32API ;
integer iHDC

declare integer GetDeviceCaps in WIN32API ;
integer iHDC, integer iIndex

* 为 VFP 取得图形设备(device context)。
liHWnd = GetActiveWindow()
liHDC = GetDC(liHWnd)


* 取得每英寸象素值。
liPixelsPerInchX = GetDeviceCaps(liHDC, cnLOG_PIXELS_X)
liPixelsPerInchY = GetDeviceCaps(liHDC, cnLOG_PIXELS_Y)

* 取得每象素缇并保存到表单属性中。

with This
.nTreeFactorX = cnTWIPS_PER_INCH/liPixelsPerInchX
.nTreeFactorY = cnTWIPS_PER_INCH/liPixelsPerInchY
ENDWITH
************************************************************

但是添加了activex控件后,表单一拖动,activex就不断的在新位置重画,叠加,表单混乱。但如果让常规控件获得焦点,比如:text控件获得焦点,可以解决问题,但反应迟钝一点,大家有更好的办法吗?请指点一下


[解决办法]
看不出这段代码跟拖动表单有什么关系,只是一段计算 pixel 与 twips 之间转换比例的代码

另外,就上面这段代码,违反了程序设计的基本原则:资源使用过后要释放
因为只看到 GetDC,没看到有调用 ReleaseDC 的代码

热点排行