声明外部函数,//初始化日控件
function boolean InitCommonControlsEx(ref initcommoncontrols lpinitcommoncontrols) library "comctl32dll"
//清除指定的窗口及它的所有子窗口
function boolean DestroyWindow(ulong hwnd) library "user32"
//判断一个窗口句柄是否有效
function boolean IsWindow(ulong hwnd) library "user32"
//发送指定的信息(这里指时间结构)到指定的窗口
function long SendMessageSystemTime(long hwnd,long uMsg,long wParam,ref systemTime lpst) library "user32" alias for "SendMessageA"
还需要定义两个结构和两个函数(一个设置日期,一个获取日期)
of_getdate()函数
//声明结构 对象
systemtime stc_systemtime;
//声明日期类型 引用
date dat_calendar;
if IsWindow(i_lng_handle) then //如果窗口句柄可用
//将用户选择的时间信息填充到时间结构中去,0表示成功,其它表示失败
if SendMessageSystemTime(i_lng_handle,4097,0,stc_systemtime)=0 then
//得到日期
dat_calendar=date(stc_systemtimewyear,stc_systemtimewmonth,stc_systemtimewday);
else
setNull(dat_calendar);
end if
else
setNull(dat_calendar);
end if
return dat_calendar;
//
of_setdate(long an_handle) 函数
//将可视日历控件的窗口句柄传递给不可视的用户对象,二者关联在一起,获得日期
if IsWindow(an_handle) then
if IsWindow(i_lng_handle) then DestroyWindow(i_lng_handle);//销毁以前的对象
//设置句柄
i_lng_handle=an_handle;
end if
return
//得到日历的时间(按钮中代码)
date dat_calendar;
string str_calendar;
dat_calendar=uo_1i_nvo_calendaruf_getdate();
if isNull(dat_calendar) then
str_calendar='未得到正确的日期';
else
str_calendar=string(dat_calendar,'yyyy-mm-dd');
end if
messageBox('日历',str_calendar);
string msg
date nd
int n,t
//----取得并处理本日在本周的序数,周一为0,周日为6----
t=daynumber(today()) -2
if t=-1 then t=6
//--------------------------------------
for n=t to 0 step -1//循环取得本周今日之前的日期(含今日)
nd=relativedate(today(),-n)
msg+=string(nd,'yyyy年mm月dd日')+'~n~n'
next
for n=1 to 6 -t//循环取得本周今日之后的日期(不含今日)
nd=relativedate(today(),n)
msg+=string(nd,'yyyy年mm月dd日')+'~n~n'
next
messagebox('',msg)
这个问题没有 遇到过 不过 你在修改的时候 后面加一个字段 就是获取当前时间 ,用一个IF 来判断 如果是修改 哪么 时间 强制update 你的时间列 这样 你就可以得到你文件的最后修改时间
以上就是关于PB调用日历控件comctl32.dll,选择日期以后,触发什么事件 如何获取控件的值全部的内容,包括:PB调用日历控件comctl32.dll,选择日期以后,触发什么事件 如何获取控件的值、PB中如何取当前日期所在周的每天日期、PB 如何获得指定文件的最后修改日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)