多くのコントロールを含むダイアログがあります。例:編集コントロール。 今私はカラフルな境界線を持っているこれらの編集コントロールを開発しています。 しかし、ユーザーが編集コントロールで入力を入力するたびにコントロールが再描画されるため、境界線がちらつきます。 今、このコントロールを持つダイアログに境界線を描画したいと思います。 mfcで可能ですか?親ダイアログをmfcで描画
0
A
答えて
4
これは、コントロールクラスをカスタマイズし、非クライアント領域で描画することで実現できます。 私はこれを私のプロジェクトで実装しました。フリッキングの問題はありません。ここで
アイデアが行くです:
/////////////////////////////////////////////////////////////////////////////
///
/// /This method is overriden, to modify the style of editcrtl
///
/////////////////////////////////////////////////////////////////////////////
void CEdit1::PreSubclassWindow()
{
ModifyStyleEx(0, WS_EX_STATICEDGE, 0); //to make sure your border is static edge
}
と非クライアント領域の上にあなただけの赤い四角形を描画:
/////////////////////////////////////////////////////////////////////////////
///
/// /This handler is used to paint the non- client area
///
/// /return none
///
/////////////////////////////////////////////////////////////////////////////
void CEdit1::OnNcPaint()
{
CDC* pDC = GetWindowDC();
//work out the coordinates of the window rectangle,
CRect rect;
GetWindowRect(&rect);
rect.OffsetRect(-rect.left, -rect.top);
//Draw a single line around the outside
CBrush brush(RGB(255,0,0));
pDC->FrameRect(&rect, &brush);
ReleaseDC(pDC);
}
0
私はOnSize関数で変更を加えたとして制御を削減各側に1pxを設定して境界を描画します。 このようなもの
rcRichEdit.left += 1;
rcRichEdit.right -= 1;
rcRichEdit.bottom -= 1;
関連する問題
- 1. MFCのキャプションバーに描画
- 2. MFCで親ダイアログではなく、子ダイアログのみを閉じます。
- 3. ダイアログのMFCツールバー?
- 4. MFC DoModalダイアログ
- 5. ビットマップスプラッシュスクリーン(MFC)でテキストを描く
- 6. MFCファイルを保存ダイアログ
- 7. MFCのダイアログのデフォルトコンストラクタをオーバーライド
- 8. CDC :: LineTo()がVisual C++ 2015 MFCダイアログで描画されないのはなぜですか?
- 9. TransparentBltをMFCで描画するために使用する
- 10. MFCで単純な矩形を描画するダイアログベースの
- 11. MFCでDirect2Dを使用した図形の描画
- 12. MFC SDIでカスタムメニューを動的に描画する方法
- 13. MFCアプリケーションのライトボックススタイルのダイアログ
- 14. 親コンテンツを描画しない
- 15. SDI MFCアプリケーションのフローチャートを描画します
- 16. 中間のMFCダイアログを配置する
- 17. MFC:オーナー描画のためのエアロスタイルのコンボボックスのレンダリング方法は?
- 18. MFCアプリケーション内のGdiplus :: PathGradientBrushは描画されません
- 19. NSView - 親ビューを再描画せずにサブビューを再描画する方法
- 20. GDI描画されたMFCのCScrollViewでズームを実装する方法
- 21. MFCのダイアログが閉じる問題
- 22. 親の子ルートを角で描画する
- 23. R + ggplot。子データを親データと同じプロットで描画する
- 24. 描画のグラフィックをwinformsで描画
- 25. MFC VC++カスタムチェックボックス画像
- 26. MFCを使用したダイアログでファイルをドラッグ
- 27. オーナー描画変数の高さを設定する方法CListBox(MFC)
- 28. MFCの1つのデバイスコンテキストに複数のビットマップを描画する - winapi
- 29. mfcの2つのダイアログ間でデータを渡す方法
- 30. MFCで正しくダイアログを継承する方法
エディットコントロールの境界をどのように描画していますか?私は、境界線のサイズを定義するために 'WM_NCCALCSIZE'を、実際に境界を描画するために' WM_NCPAINT'を処理することでこれを行います。正しく行われた場合、ちらつきはありません。 – zett42
* "今、これらの編集コントロールを開発中です" * - それは何かを意味する可能性があります。そして、あなたの問題の中心的な要素である、それはいくつかの詳細があります。 – IInspectable