case WM_SETTINGCHANGE:
          GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_ITIME, szBuffer, 2) ;
          f24Hour = (szBuffer[0] == '1') ;          GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_ITLZERO, szBuffer, 2) ;
          fSuppress = (szBuffer[0] == '0') ;          InvalidateRect (hwnd, NULL, TRUE) ;
          return 0 ;中的GetLocaleInfo函数不怎么理解,哪位大哥英文好,给看看,并把这个函数的用法,和那个参数总结一下子.

解决方案 »

  1.   

    http://hi.baidu.com/hanbgzs/blog/item/e7d84631754167f31a4cffa8.html
      

  2.   

    http://blog.csdn.net/li_guotao/archive/2009/06/29/4306460.aspx
      

  3.   

    invoke GetLocaleInfo,LOCALE_USER_DEFAULT,LOCALE_ITIME,addr szBuffer,2
    GetLocaleInfo:取得与指定地方有关的信息
    Locale:想要获得信息的地方(可选)
    lCType:要取回的信息类型
    lpLCData:制定缓冲区,用于装载要求的信息.
    cchData:缓冲区长度;0=获取必要的缓冲区长度
    返回值:成功返回非零,失败为零|local参数可选值:
    LOCALE_USER_DEFAULT:默认表示当前用户
    LOCALE_SSHORTDATE :短日期格式
    LOCALE_SLONGDATE :长日期格式
    LOCALE_STIMEFORMAT:时间格式1.//获取时间日期格式
    procedure GetDateTimeFormat();var buf:pchar; i:integer; GPrevShortDate,GPrevLongDate,GPrevTimeFormat:string;begin getmem(buf,100); i:=100; //i必须在调用前赋值为buf缓冲区的长度。如果设为0或负值,将取不到设置的值 GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,buf,i); //取当前用户设置,短日期格式。 GPrevShortDate:=string(buf); i:=100; GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,buf,i); //取长日期格式 GPrevLongDate:=string(buf); i:=100; GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,buf,i); //取时间格式 GPrevTimeFormat:=string(buf); FreeMem(buf);end;
    2.//设置时间格式
    procedure SetDateTimeFormat();
    var
    p:DWORD;
    begin
    SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,pchar('yyyy-MM-dd')); //设置短日期格式
    SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,pchar('yyyy''年''M''月 ''d''日'')); //设置长日期格式为 yyyy'年'M'月'd'日',“年月日”字符必须用单引号括起来。Delphi字符串里必须用两个单引号。
    SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('H:mm:ss')); //设置时间格式,24小时制
    SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);//设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式
    end;
     
      

  4.   

    您好,
    由于您长时间不结贴,上一次答复已超一个月并且已有最佳答案,本人帮你结贴。
    若是觉得答案不嘉,请放在本版的疑难杂症帖链接:
    http://bbs.csdn.net/topics/390351579。
    如果您有什么意见,请您联系我。