2007-07-05

Today画面のオプションダイアログを作成する

今日はWM6 SDKのサンプルを参考にToday画面用アプリのオプションダイアログを作ってみました。
 
リソースにダイアログを追加して、レジストリでOptionsを 1に設定しました。
続いてCustomItemOptionsDlgProcの中で WM_INITDIALOGとWM_DESTROYのメッセージだけを処理しておきます。
LRESULT WINAPI CustomItemOptionsDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{    static TODAYLISTITEM *s_ptliItem = NULL;

    switch (message)
    {
    case WM_INITDIALOG:
        {
            SHINITDLGINFO shidi;
            BOOL fShowStorage, fShowProgram;

            shidi.dwMask = SHIDIM_FLAGS;
            shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
            shidi.hDlg = hDlg;
            SHInitDialog(&shidi);

            s_ptliItem = (TODAYLISTITEM*)lParam;
        }
        return TRUE; 
        
    case WM_DESTROY:
        s_ptliItem = NULL;
        break;

    }

    return FALSE;
}
 
表示できません(笑
 
それ以前に表示するダイアログを指定している場所が見当たりません。
いろいろ検索してみたところ、Today画面の作成について丁寧にまとめてくれているページを発見しました。
どうやら、オプションダイアログはIDD_TODAY_CUSTOM(500)に決め打ちのようです。
todaycmn.hの中にもそれっぽいものが定義されています。
/* custom DLL resources */

#define IDI_ICON                  128
#define IDD_TODAY_CUSTOM          500
 
ただ上記のページにも書かれている通り、MSDNを読み直してみても IDD_TODAY_CUSTOMについては何も触れられていないように思います。
かろうじてかなり昔のMSDNマガジンの記事に IDD_TODAY_CUSTOM(500)を想定しているとの記述がありました。
WM6から入門する人の事も考えて欲しいものですね。
 

0 件のコメント: