5720|11

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

.NET Compact Framework 1.0 C# 怎么实现 DateTimePicker? [复制链接]

.NET Compact Framework 1.0 C# 怎么实现 DateTimePicker?
用调用API创建吗?具体怎么写呢?

最新回复

Jimmy Huang:     e....我的不是吗? o.o~?  详情 回复 发表于 2007-12-27 09:59
点赞 关注

回复
举报

58

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
帮顶下 呵呵
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
API?什么操作系统的API?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
现在可以显示出DATETIMEPICKER来了,代码如下,一个可以简单使用DATETIMEPICKER的类,
但是现在的问题是这样的:我的WINCE设备不是触摸屏,所以我必须用键盘来控制我的程序,但是我的程序是C#写的,在我的DATETIMEPICKER获得焦点的时候,我如何接收键盘消息呢,因为我必须接收比如回车或者TAB之类的键以便切换界面上的控件的焦点,否则程序的焦点永远落在DATETIMEPICKER上了...

  1. using System;

  2. using System.Runtime.InteropServices;

  3. namespace VCANSMobilePower
  4. {
  5.         ///
  6.         /// CVMDateTimePicker 的摘要说明。
  7.         ///

  8.         public class CVMDateTimePicker
  9.         {
  10.                 [DllImport("Commctrl.Dll")]
  11.                 public static extern bool InitCommonControlsEx(ref LPINITCOMMONCONTROLSEX lpInitCtrls);

  12.                 [DllImport("coredll.Dll")]
  13.                 public static extern IntPtr CreateWindowEx(int dwExStyle, string lpClassName, string lpWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, IntPtr hWndParent, int hMenu, int hInstance, string lpParam);
  14.                
  15.                 [DllImport("coredll.Dll")]
  16.                 public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

  17.                 [DllImport("coredll.Dll")]
  18.                 public static extern IntPtr SetFocus( IntPtr hWnd);

  19.                 [DllImport("coredll.Dll",EntryPoint = "SendMessage")]
  20.                 public static extern int SendMessage_SYSTEMTIME(IntPtr hWnd, int Msg, int wParam, ref SYSTEMTIME lParam);

  21.                 [StructLayout(LayoutKind.Sequential)]
  22.                         public struct LPINITCOMMONCONTROLSEX
  23.                 {
  24.                         public UInt32 dwSize;
  25.                         public UInt32 dwICC;
  26.                 }

  27.                 private const int ICC_DATE_CLASSES = 256;

  28.                 private const int WS_POPUP = -2147483648;
  29.                 private const int WS_BORDER = 8388608;
  30.                 private const int WS_CHILD = 1073741824;
  31.                 private const int WS_VISIBLE = 268435456;

  32.                 private const int DTM_GETSYSTEMTIME = 4097;
  33.                 private const int MCM_SETCURSEL = 4098;

  34.                 public struct SYSTEMTIME
  35.                 {
  36.                         public UInt16 wYear;
  37.                         public UInt16 wMonth;
  38.                         public UInt16 wDayOfWeek;
  39.                         public UInt16 wDay;
  40.                         public UInt16 wHour;
  41.                         public UInt16 wMinute;
  42.                         public UInt16 wSecond;
  43.                         public UInt16 wMilliseconds;
  44.                 }

  45.                 public CVMDateTimePicker()
  46.                 {
  47.                         //
  48.                         // TODO: 在此处添加构造函数逻辑
  49.                         //
  50.                 }

  51.                 public static IntPtr Show(IntPtr FormHandle,int Width, int Height)
  52.                 {
  53.                         IntPtr hWnd;

  54.                         LPINITCOMMONCONTROLSEX myLPINITCOMMONCONTROLSEX = new LPINITCOMMONCONTROLSEX();
  55.                         myLPINITCOMMONCONTROLSEX.dwICC = ICC_DATE_CLASSES;
  56.                         myLPINITCOMMONCONTROLSEX.dwSize = (UInt32)Marshal.SizeOf(myLPINITCOMMONCONTROLSEX);
  57.                         InitCommonControlsEx(ref myLPINITCOMMONCONTROLSEX);
  58.                         hWnd = CreateWindowEx(0, "SysDateTimePick32", null, WS_VISIBLE | WS_BORDER | WS_CHILD, 0, 0, Width, Height,FormHandle, 0, 0, null);

  59.                         return hWnd;
  60.                 }

  61.                 public static void SetDateTime(IntPtr hWnd,SYSTEMTIME st)
  62.                 {
  63.                         SendMessage_SYSTEMTIME(hWnd,MCM_SETCURSEL,0,ref st);
  64.                 }
  65.                 public static SYSTEMTIME GetDateTime(IntPtr hWnd)
  66.                 {
  67.                         SYSTEMTIME st = new SYSTEMTIME();
  68.                         SendMessage_SYSTEMTIME(hWnd,DTM_GETSYSTEMTIME,0,ref st);
  69.                         return st;
  70.                 }
  71.         }
  72. }

复制代码
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
jf
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
唉...还是没有解决...
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

7
 
自己顶一下...
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
继续....
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

9
 
不好意思... 老顶...
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

10
 
折腾....
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

11
 
PInvoke是一个方法
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

12
 
Jimmy Huang:
    e....我的不是吗? o.o~?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表