掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
特定条件時の色変更について (ID:71402)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
スタティックテキストの色変更について。 起動時にCOM情報がエラーの時は、赤文字にしたいのですが 調べながら色々試しているのですが、なかなかうまくできません。 どなたかご教示ください。 環境:VC++、MFC HBRUSH CDataWriting::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: ここで DC の属性を変更してください。 // ダイアログの色変更 if (nCtlColor == CTLCOLOR_DLG) { if (*pWnd == *this) { // 背景色 hbr = static_cast<HBRUSH>(GetStockObject(BLACK_BRUSH)); } } int ID = pWnd->GetDlgCtrlID(); switch(ID) { case IDC_STATIC_COM_INFO: pDC->SetTextColor(RGB(0,255,0)); // 文字色緑 pDC->SetBkColor(RGB(0,0,0)); // 文字背景色黒 break; case IDC_GRP_OPE: pDC->SetTextColor(RGB(255,255,0)); // 文字色黄 pDC->SetBkColor(RGB(0,0,0)); // 文字背景色黒 break; case IDC_GRP_PRO_REP: / pDC->SetTextColor(RGB(255,0,0)); // 文字色赤 pDC->SetBkColor(RGB(0,0,0)); // 文字背景色黒 break; case IDC_GRP_SET: pDC->SetTextColor(RGB(0,0,255)); // 文字色緑 pDC->SetBkColor(RGB(0,0,0)); // 文字背景色黒 break; case IDC_STATIC_COM_INFOMATION: pDC->SetTextColor(RGB(0,255,0)); // 文字色緑 pDC->SetBkColor(RGB(0,0,0)); // 文字背景色黒 break; case IDC_STATIC_OPE: pDC->SetTextColor(RGB(255,255,0)); pDC->SetBkColor(RGB(0,0,0)); break; case IDC_STATIC_PROREP: pDC->SetTextColor(RGB(255,0,0)); pDC->SetBkColor(RGB(0,0,0)); break; case IDC_STATIC_SETTING: pDC->SetTextColor(RGB(0,255,255)); pDC->SetBkColor(RGB(0,0,0)); break; } // TODO: 既定値を使用したくない場合は別のブラシを返します。 return hbr; } BOOL CDataWriting::OnInitDialog() { CDialog::OnInitDialog(); 【中略】 /*初期表示*/ asd.Format("【%5s:%6s,%s%s%s】",m_StataPort,w_StataBaud,w_statepali,w_StataBit,w_statestop) ; /*Com判定*/ if(com_check){ m_ddx_v_com_info = asd; } else{ CWnd* pWnd = GetSafeHwnd(); ここに文字色を赤にする記述を書きたい //CDC* pDC = GetDlgItem(IDC_STATIC_COM_INFO) ->GetDC(); //CDC test = GetDC(hWnd); //::SetTextColor(hWnd,RGB(255,0,0)); //HDC GetDC(HWND hWnd); //CDC* pDC = GetDlgItem(IDC_STATIC_COM_INFO) ->GetDC(); CDC* pDC; pDC = pWnd->GetDlgCtrlID(); //CDC* pDC -> pDC -> SetTextColor(RGB(255,0,0)); // 文字色赤 pDC -> SetBkColor(RGB(0,0,0)); m_ddx_v_com_info = "【Non-connection】"; }; /*CDC* pDC = (CDC*)GetDlgItem(IDC_STATIC_COM_INFO); pDC -> SetTextColor(RGB(255,0,0)); pDC -> SetBkColor(RGB(0,0,0)); */ //CWindowDC dc(this); //CSize sizesize = dc.GetTextExtent(m_ddx_v_com_info); //CEdit* editedit = (CEdit*)GetDlgItem(IDC_STATIC_COM_INFO); //editedit->SetWindowPos(editedit,0,0,sizesize.cx-96,12,SWP_NOMOVE|SWP_NOZORDER); //CButton *Btn = (CButton*)GetDlgItem(IDC_BTN_SEND); //Btn->EnableWindow(FALSE); // 無効 UpdateData(FALSE); return FALSE; // return TRUE unless you set the focus to a control // 例外 : OCX プロパティ ページは必ず FALSE を返します。 }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.