判断MonthCalander中鼠标点中了日期还是翻页按钮!

原创 2004年09月22日 19:51:00

uses CommCtrl;

var OldWindowProc: TWndMethod;

procedure TForm1.MyWindowProc(var Msg: TMessage);
begin
  if Msg.Msg = CN_NOTIFY then
  begin
    case TWMNotify(msg).NMHdr.code of
      MCN_GETDAYSTATE: Memo1.Lines.Add('MCN_GETDAYSTATE');//點了翻页
      MCN_SELECT, MCN_SELCHANGE: Memo1.Lines.Add('MCN_SELECT, MCN_SELCHANGE');//選中日期
     end;
  end;

  OldWindowProc(Msg);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OldWindowProc := MonthCalendar1.WindowProc;
  MonthCalendar1.WindowProc := MyWindowProc;
end;

549的問題, 吃完飯看了下VCL的源碼, 應該可以! 不過, 點了翻页按鈕也會觸發日期選中的消息的, 相反則不會!

同時還看到一個:

发布TDateTimePicker同时修改日期和时间的解决方案

type
  TCDateTimePicker = class(TDateTimePicker)
  private
    procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
  end;

function IsBlankSysTime(const ST: TSystemTime): Boolean;
type
  TFast = array[0..3] of DWORD;
begin
  Result := (TFast(ST)[0] or TFast(ST)[1] or TFast(ST)[2] or TFast(ST)[3]) = 0;
end;

procedure TCDateTimePicker.CNNotify(var Message: TWMNotify);
begin
  with Message, NMHdr^ do
  begin
    Result := 0;
    if (code = DTN_DATETIMECHANGE) and
      (PNMDateTimeChange(NMHdr)^.dwFlags = GDT_VALID) and (not DroppedDown) and
      (not (ShowCheckBox and IsBlankSysTime(PNMDateTimeChange(NMHdr)^.st))) then
       DateTime := SystemTimeToDateTime(PNMDateTimeChange(NMHdr)^.st);
  end;
  inherited;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TCDateTimePicker.Create(self) do
  begin
    Left := 100;
    Top := 100;
    Parent := Self;
    Format := 'yyyy-MM-dd hh:mm:ss';
    Visible := true;
  end;
end;

可以按上下鍵直接修改, 不錯! 不過要改到可以下拉面板也有時間選擇, 可能難一點!

btw: kylix 又說有新的clx要發布, 有點亂, 不是說停止開發了嗎?? 還有BCB, BCBX的新聞也有點亂, 是borland自己的產品定位還不清, 還是只不過傳言有誤??

CSS3翻页按钮

CSS3翻页按钮 用CSS3做出的翻页按钮样式 按钮样式图 ​在CSS当中设定按钮的样式,颜色、阴影、大小、圆角、文字颜色、大小、线性渐变等属性: .butt...
  • limu693992297
  • limu693992297
  • 2016年06月06日 16:26
  • 332

UGUI 之 判断鼠标或者手指是否点击在UI上

参考雨松大大的方法: 比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分。为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上。...
  • andyhebear
  • andyhebear
  • 2015年12月22日 09:57
  • 5141

实现鼠标滚动一下页面就上下翻一页的效果

Document *{ margin: 0; padding: 0; } html,body{ width: 100%; height: 100%; ...
  • Function_JX_
  • Function_JX_
  • 2015年02月08日 00:27
  • 5567

QT判断界面当前点击的按钮和当前鼠标坐标

1.QObject::sender( ) 返回发送信号的对象的指针,返回类型为QObject* 。可使用qobject_cast动态类型转换成对应的发送信息的对象(对象类的基类中需要有QObject)...
  • u012260238
  • u012260238
  • 2017年08月10日 09:38
  • 1044

UGUI ScrollRect 带按钮翻页支持拖拽

UGUI ScrollRect 带按钮翻页支持拖拽 using UnityEngine; using System.Collections; using UnityEng...
  • subsystemp
  • subsystemp
  • 2016年01月29日 17:15
  • 3314

opencv 检测鼠标的点击和移动

只需要定义一个callback的函数, 然后将这个函数附属到我们定义的一个opencv的window上即可, 这样每当鼠标在窗口处发生动作的时候, 就会调用callback函数。  点击鼠标的时候, ...
  • a130737
  • a130737
  • 2015年01月25日 13:22
  • 1541

JavaScript判断鼠标中键滑轮的上下滚动

我们现在操作电脑最常用的就是鼠标,对于鼠标来说,左右键的处理事件必不可少,但是鼠标中键的上下滚动也可以在页面中做出相当炫的效果。...
  • fxss5201
  • fxss5201
  • 2017年02月12日 23:05
  • 719

判断两个日期是否相等

小程序能不能做游戏JS变量共享3. 直到S[4]跟P[]匹配成功i=4,而是pw|zpz谢谢大家.在“云”的支撑下可以构造出千变万化的应用public staticfinal int DIM_AMOU...
  • yuanbing2326
  • yuanbing2326
  • 2017年01月26日 15:28
  • 600

OpenGL中鼠标点取

OpenGL中鼠标点取 (2008-07-27 00:29:19) 转载 标签: 杂谈 分类:计算机图形学 获取拣选射线的例程如下所示(使用C++语...
  • Stephen_Chow123
  • Stephen_Chow123
  • 2014年03月31日 13:34
  • 1643

网页鼠标滚轮事件(滚滚屏)的获取及理解

问题?鼠标滚轮事件的获取及理解 什么是鼠标滚轮事件呢?
  • Mr_li13
  • Mr_li13
  • 2016年02月02日 00:57
  • 8377
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:判断MonthCalander中鼠标点中了日期还是翻页按钮!
举报原因:
原因补充:

(最多只允许输入30个字)