社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

CTaskDialog のサンプル - WTL

WTLのCTaskDialog を使って、解像度の変更時に表示される確認ダイアログボックスを
再現してみました。

---
class CConfirmDialog : public CTaskDialogImpl<CConfirmDialog>
{
public:
    CConfirmDialog(HWND hWndParent = NULL) :
        CTaskDialogImpl<CConfirmDialog>(hWndParent)
    {
        this->ModifyFlags(0, TDF_CALLBACK_TIMER);

        this->SetMainInstructionText(L"このディスプレイ設定をそのままにしますか?");

        static TASKDIALOG_BUTTON buttons[] = {
            { TDCBF_OK_BUTTON, L"変更を維持する(&K)" },
            { TDCBF_CANCEL_BUTTON, L"元に戻す(&R)" } };
        this->SetButtons(buttons, _countof(buttons), TDCBF_OK_BUTTON);

        this->SetFooterText(L" ");
    }
    ~CConfirmDialog()
    {
    }

// Overrideables - notification handlers
public:
    void OnDialogConstructed()
    {
    }

    void OnCreated()
    {
        ::SetWindowText(m_hWnd, L"ディスプレイ設定");
    }

    BOOL OnButtonClicked(int /*nButton*/)
    {
        return FALSE; // don't prevent dialog to close
    }

    void OnRadioButtonClicked(int /*nRadioButton*/)
    {
    }

    void OnHyperlinkClicked(LPCWSTR /*pszHREF*/)
    {
    }

    void OnExpandoButtonClicked(bool /*bExpanded*/)
    {
    }

    void OnVerificationClicked(bool /*bChecked*/)
    {
    }

    void OnHelp()
    {
    }

    BOOL OnTimer(DWORD dwTickCount)
    {
        USES_CONVERSION;

        const int MAX_MILLISECOND = 10000;
        if (MAX_MILLISECOND < dwTickCount)
        {
            this->ClickButton(TDCBF_CANCEL_BUTTON);
        }
        else
        {
            const stringClass& strFooterText = thisClass::FormatString(
                _T("%d 秒で前のディスプレイ設定に戻ります。"),
                (MAX_MILLISECOND - dwTickCount) / 1000);
            this->UpdateElementText(TDE_FOOTER, T2W((LPTSTR)(LPCTSTR)strFooterText));
        }

        return FALSE; // don't reset counter
    }

    void OnNavigated()
    {
    }

    void OnDestroyed()
    {
    }
};
---

投稿日時 : 2012年10月14日 20:06


コメントを追加

タイトル
名前
URL
コメント