掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
モーダレスダイアログの初期化するには? (ID:62031)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
モーダレスダイアログにて、 //変更前 .h class CWaitMsg : public CDialog { DECLARE_DYNAMIC(CWaitMsg) public: CWaitMsg(CWnd* pParent = NULL); // 標準コンストラクタ virtual ~CWaitMsg(); BOOL CWaitMsg::Create(); CWnd* m_pParent; // for modeless. int m_nID; // for modeless. // ダイアログ データ enum { IDD = IDD_WAITMSG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート DECLARE_MESSAGE_MAP() public: afx_msg void OnEnChangeEditMsg(); CString m_waitmsg; }; // .cpp CWaitMsg::CWaitMsg(CWnd* pParent /*=NULL*/) : CDialog(CWaitMsg::IDD, pParent) , m_waitmsg(_T("")) { char Message[256]; LoadString(gHINSTANCE, IDS_MSG_500, Message, sizeof(Message)); m_waitmsg = _T(Message); m_pParent = pParent; m_nID = CWaitMsg::IDD; } の場合はちゃんと表示されます。が このダイアログ表示位置をデスクトップ画面中央に配置したく //変更後 //. h class CWaitMsg : public CDialog { DECLARE_DYNAMIC(CWaitMsg) public: CWaitMsg(CWnd* pParent = NULL); // 標準コンストラクタ virtual ~CWaitMsg(); BOOL CWaitMsg::Create(); CWnd* m_pParent; // for modeless. int m_nID; // for modeless. // ダイアログ データ enum { IDD = IDD_WAITMSG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート virtual BOOL OnInitDialog(); RECT rc; DECLARE_MESSAGE_MAP() public: afx_msg void OnEnChangeEditMsg(); CString m_waitmsg; }; //.cpp BOOL CWaitMsg::OnInitDialog () { //ダイアログデスクトップ画面中央表示 int wFull = GetSystemMetrics(SM_CXSCREEN); // スクリーンの幅を取得 int hFull = GetSystemMetrics(SM_CYSCREEN); // スクリーンの高さを取得 GetWindowRect(&rc); // ダイアログの初期位置とサイズ int w = rc.right - rc.left; int h = rc.bottom - rc.top; MoveWindow((wFull-w)/2, (hFull-h)/2, w, h, FALSE); // 同じサイズで中心に移動させる //待機メッセージの取得&表示 char Message[256]; LoadString(gHINSTANCE, IDS_MSG_500, Message, sizeof(Message)); m_waitmsg = _T(Message); return true; } となおすと中央に配置はされるが、メッセージが表示されなくなってしまいます。 おかしな点がありましたら回答よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.