时 间:2008-02-16 07:59:16
作 者:cg1 ID:11 城市:上海 QQ:3002789054
摘 要:如何让日期控件不占据窗体上的空间?
正 文:
问题:
|
如何让日期控件不占据窗体上的空间?
如何获取某个控件在窗体上的绝对像素或者缇位置? |
回答:
|
思路,直接新建一个frmCalendarSelect窗体,添加一个日期控件,然后设置窗体弹出为是。其他窗体需要选择日期时只要打开frmCalendarSelect窗体,并将该窗体停靠在控件下方即可。
停靠在哪里,也就是某个控件在屏幕上的绝对位置只需要用 API ClientToScreen 就可以找到。
'//按 ALT+F11 转到 vba 界面,
'//新建一个模块
'//将以下代码 COPY 进去
'ClientToScreen 需要使用
Public Type POINTAPI
x As Long
y As Long
End Type
Public Enum TwipsTransfer
DIRECTION_VERTICAL = 1
DIRECTION_HORIZONTAL = 0
End Enum
'apiGetDeviceCaps 的参数
Public Const LOGPIXELSX = 88
Public Const LOGPIXELSY = 90
'SetWindowPos wFlags 参数使用的常数
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOMOVE = &H2
Public Const SWP_DRAWFRAME = &H20
'相对位置转换为屏幕绝对位置
Public Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
'移动窗体,或者更改窗体在屏幕上的Z轴顺序
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndinsertAfter As Long, ByVal x As Long, ByVal y As Long, _
ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Declare Function apiGetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
Public Declare Fu
Access软件网QQ交流群 (群号:54525238)
Access源码网店
| |