1
パスワードを入力するためにCMFCPropertyGridCtrlに編集ボックスを挿入します。しかし、CMFCPropertyGridPropertyは、通常の編集ボックスしか作成できません。パスワードを使用するために新しいパスワードを作成するにはどうすればよいですか?パスワードの使用のためにCMFCPropertyGridCtrlに編集ボックスを挿入するには?
パスワードを入力するためにCMFCPropertyGridCtrlに編集ボックスを挿入します。しかし、CMFCPropertyGridPropertyは、通常の編集ボックスしか作成できません。パスワードを使用するために新しいパスワードを作成するにはどうすればよいですか?パスワードの使用のためにCMFCPropertyGridCtrlに編集ボックスを挿入するには?
CMFCPropertyGridProperty
から新しいクラスを派生し、2つの関数:OnDrawValue()
とCreateInPlaceEdit()
を上書きします。
コードのプロトタイプは次のようになります。
void CMyGridProperty::OnDrawValue(CDC* pDC, CRect rect)
{
// pre-processing
// ...
CString strVal = FormatProperty();
if(!strVal.IsEmpty())
{
strVal = _T("******"); // NOTE: replace the plain text with "******"
}
rect.DeflateRect(AFX_TEXT_MARGIN, 0);
pDC->DrawText(strVal, rect, DT_LEFT | DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX | DT_END_ELLIPSIS);
// post-processing
// ...
}
CWnd* CMyGridProperty::CreateInPlaceEdit(CRect rectEdit, BOOL& bDefaultFormat)
{
// pre-processing
// ...
CEdit* pWndEdit = new CEdit;
DWORD dwStyle = WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_PASSWORD; // NOTE: add 'ES_PASSWORD' style here
pWndEdit->Create(dwStyle, rectEdit, m_pWndList, AFX_PROPLIST_ID_INPLACE);
// post-processing
// ...
return pWndEdit;
}
あなたの答えをありがとう、それは動作します。 –
はES_PASSWORDスタイルに見て。 通常のCEditのctrlを使用して、そのスタイルを変更してパスワードボックスにすることができると思います。 – Jonathan