HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1210
窓口カレンダーコントロールの指定日付を太字(ボールド)にする。2解決


窓口

リンク

2009/12/10(Thu) 22:01:00|NO.29223

;http://msdn.microsoft.com/ja-jp/library/h9zxdck8.aspx
上記のサイトを参考に指定したカレンダーコントロールの指定した日付を強調表示するスクリプトを書いていたのですが
行き詰ってしまいました。

どなたか解りましたらお願いします。


#const global MCS_DAYSTATE 1 ; MCN_GETDAYSTATEメッセージを送ってどの日をボールドにするかを指定できます。 #const global MCM_GETTODAY 0x100d ; 「今日」の日付を取得 #const global MCM_GETCURSEL 0x1001 ; 現在選択されている日付を取得 #const global MCM_SETDAYSTATE $00001008 ; 指定した日付を強調表示する。 #const global MCN_SELECT -746 ; 日付に選択されたことを親に通知します。 #const global MCN_GETDAYSTATE $FFFFFD15 ; 予定表コントロールの各日に関する情報を または 表示するか月の情報を送信します。 #define xsize 218 ;windowサイズ #define ysize 188 ; カレンダーコントロールの設置。 ; MCS_DAYSTATEにて、日付強調表示の実行 ; (ページがシフトした際に必要な情報を返す。MCN_GETDAYSTATE 親にを送信するようにする) ; MCN_GETDAYSTATE が受け取る情報のメンバ ; nmhdr : この通知メッセージに関する情報を含む NMHDR 構造体。 ; stStart : 開始日を格納する SYSTEMTIME 構造体。 ; cDayState : prgDayState 配列内の指定要素の合計数を指定する INT 値。 ; prgDayState : MONTHDAYSTATE 値の配列のアドレス。 ; bufferがこのアドレスで格納できるだけの大きさである必要があります ; cDayState 要素。配列内の最初の要素を stStart での日付に対応します winobj"SysMonthCal32","タイトル" , , $50000000 | MCS_DAYSTATE , xsize , ysize hmcal = objinfo_hwnd(stat) , stat dim MONTHDAYSTATE,100788 oncmd gosub *msg_WM_NOTIFY , WM_NOTIFY stop *msg_WM_NOTIFY dupptr NMHDR, lparam, 4*3 logmes strf("0x%08x,0x%08x,0x%08x",nmhdr(0),nmhdr(1),nmhdr(2)) ; MCN_GETDAYSTATE if nmhdr(2) = MCN_GETDAYSTATE { ;最終的には指定した日付を太字で表示できるようにしたい。 dim pDayState, 9 dupptr pDayState , lparam , 9*4 repeat pDayState(7) pDayState(8)=0 pDayState(8) |= 1<<3;三日を強調表示してみる loop ;get(8) = 0 ;sendmsg hmcal , MCM_SETDAYSTATE , cnt , varptr(MONTHDAYSTATE) } return



この記事に返信する


tsuka

リンク

2009/12/14(Mon) 23:23:35|NO.29263

まず、WM_NOTIFYは定義されてないので#constやら#defineやらしましょう。
それと、

if nmhdr(2) = MCN_GETDAYSTATE { ;最終的には指定した日付を太字で表示できるようにしたい。
の部分はMCN_SELECTじゃないですかね。

あとはここ↓のカレンダーのページを参考にしてみてください。(2.6時代のものです)
http://blog.goo.ne.jp/hiro239415/m/200602

//余計なお世話かもしれませんが、コーディングが一貫性に欠けているように見えます。



窓口

リンク

2009/12/15(Tue) 05:13:19|NO.29270

>>tsuka様

色々調べたところ、HSPでは、MCN_GETDAYSTATEでない方法を使った方が良いようだと解りました。
色々バグが起こって面倒みたいです。

半分あきらめかけていたところを助かりました。

有難うございます。
解決しました。



ONION software Copyright 1997-2023(c) All rights reserved.