• ベストアンサー

VC++2010 MFC EDIT に格子

VC++ 2010 MFC で エディットコントロールに 原稿用紙のような格子を入れる事は可能でしょうか? また、エディットコントロール以外で可能な方法はありますでしょうか? 現状はエディットコントロールの上にタイマーを使って コマ目に線を描画しているのですが、線がパカつくので 何か良い方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

線がパカつくのはタイマーイベントで描画しているからだと思います。 エディット本来の描画処理とタイマーによる描画が混在して発生するからです。 なのでエディット本来の描画処理を置き換えることが必要になります。 エディットを派生してOnPaint()で描画すればパカつくことはなくなりますよ。 ちなみに他のコントロールでも同じ原理で描画しているので同様です。

haruka_kubota
質問者

お礼

ありがとうございます。 早速試してみます!!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VC++2010で波形線を出力したいのですが・・・

    VC++2010で波形線を出力したいのですが、サイト探しても難しく自分にはわかりませんでした。 なのでまずは線を出力したいと思います。 VC++2010 MFCで どうやったら 線を出力できるかよろしくお願いします。 考えでは エディットボックスから値を入力し、それを読み取って線を出力するような プログラムにしたいと考えています。 ではよろしくお願いします。

  • MFC 6.0 VC++ で、処理が重くなります。

    MFC 6.0 VC++ で、処理が重くなります。 上記の環境でダイアログベースで処理を作成しています。 画面の再描画を繰り返すと、同じ処理をしていても処理が重くなります。 OnPainメッセージを受け取ったあとに、描画処理を行っているのですが、画面に表示に必要な計算も描画時に行っています。 仮想ウィンドウに描画してBitBlt()を実行する方法も試しましたが、ちらつかなくなった代わりに余計に処理が重くなりました。 描画のやり方が問題なのか、内部の処理が問題なのか良く分からないのですが、何か良い方法が無いでしょうか? タスクマネージャーを見るとコミットチャージが増えているようです。 このコミットチャージもどう対処してよいのか良く分からないのですが、これが関係しているでしょうか?

  • MFC 6.0 VC++ で、処理が重くなります。

    MFC 6.0 VC++ で、処理が重くなります。 上記の環境でダイアログベースで処理を作成しています。 画面の再描画を繰り返すと、同じ処理をしていても処理が重くなります。 OnPainメッセージを受け取ったあとに、描画処理を行っているのですが、画面に表示に必要な計算も描画時に行っています。 仮想ウィンドウに描画してBitBlt()を実行する方法も試しましたが、ちらつかなくなった代わりに余計に処理が重くなりました。 描画のやり方が問題なのか、内部の処理が問題なのか良く分からないのですが、何か良い方法が無いでしょうか? そもそもダイアログベースで画像処理をしているのが間違いな気もするのですが・・・。

  • VC++でエクセルのような表

    プログラミング初心者です。 VC++でエクセルのような表(請求書などのような)を作成し印刷するツール を作りたいと思っています。 フォームを表示させて、月をコンボボックスで選択したり、内容を エディットコントロールに入力したりしてボタンを押すと、それらの 値が設定された雛形をプレビューとして表示させ、その後印刷させたい のですが、雛形はどうやって作るのがよいのでしょうか。 描画の関数などを使って罫線のようなものを引いくという方法をちらっと 見つけたのですが、それ以外の方法もあったりするのでしょうか。 恐らくエクセルVBAで作成するのが一番よいと思うのですが、VC++で・・・ という課題です。 環境はVisualStudio2005です。 よろしくお願いいたします!

  • 【VC++】コントロールの上に描画

    【VC++】コントロールの上に描画 Visual C++ 2005環境です。 ニコニコ動画みたいな動画プレイヤを作ろうとしているのですが、 作成するにあたって、コントロールの上にテキストを描画する方法で悩んでいます。 ボタンでもチェックボックスでもなんでも良いのですが、 そういったフォーム上のコントロールの上にテキストなり図形なりを描画するのって どういう方法で実装したら良いのでしょうか? サンプルのコードがあれば嬉しいですが、 無くても「こういうものを調べれば出来る」という取っ掛かりだけでも 教えて頂けると助かります。 すみませんが、方法ご存知の方居ましたらお願いします。

  • 同じエディットボックスへのDrag&Drop(VC++/MFC)

    同じエディットボックスへのDrag&Drop(VC++/MFC) 同じエディットボックスへDrag&Dropすると テキストが消えてしまう現象に悩んでいます。 現在、 下記のサイト http://www.softist.com/programming/dandd/dandd.htm のサンプルプログラムを参考に コントロール間のDrag&Dropの仕方を学習しています。 このサンプルではエディットボックス間で文字列のコピーができるようになっていますが、 私がほしい機能は文字列の移動です。 そこで、サンプルのEditForDD.cppの DROPEFFECT DropEffect = OleDataSrc.DoDragDrop(DROPEFFECT_COPY); の下に、 if(DropEffect == DROPEFFECT_COPY) this->SetWindowTextA(""); という一文を加えて、Drag&Dropする際にDrag元のテキストを削除するようにしました。 その結果、異なるエディットボックス間での移動は可能になりましたが、 Drag元のエディットボックスにテキストを戻そうとすると テキストが消えてしまいまうようになってしまいました。 このように同じエディットボックスにDrag&Dropをしても テキストが消えないようにする方法をご存じの方はいらっしゃいませんでしょうか? なお、開発環境は以下の通りです。 開発環境:Visual Studio 2005 Standard Edition 利用言語:VC++/MFC OS:Windows XP よろしくお願いいたします。

  • VC++2010 描画処理について

    VC++2010 描画処理について質問なんですが、 再描画するさい、前の描画した画像(自分が今作成しているプロジェクトでいうと前、描画した点が消えてしまってあらたに点が描画されるんですが)その前、描画された点を消すことなく新たに点が描画される方法が分からないので質問させていただきました。このままだったら直線にならない、そして点がただ動くだけのプロジェクトになります。点がただ動くだけのじゃない、線が描画される方法をよろしくお願いします。 ではよろしくお願いします。

  • VC + + 2013

    VC++2013でメニューバーを2行にして、 その上にボタンやリストボックスなどのコントロールを置きたいのですが、方法はありますでしょうか?

  • 線の描画速度

    VCで簡単な2DのCADを作ろうと思っています VCの初心者用の本(MFC)のサンプルを見ながらやっていますが 直線や円などの描画速度が市販のCADに比べて3倍位時間がかかってしまいます。 線の描画速度を上げるにはどんな方法があるのでしょうか

  • VC2008にてフォントの変更がうまくいきません

    環境  WindowsXP  VC 2008 MFC   内容  上記の環境化で、ウインドウズアプリケーションを作成しており  以下のようなプログラムをOnInitDialogでCallすると  アサートが発生してしまいます  問題なのは、Unicodeでコンパイルして実行するとうまくいかず  マルチバイトでコンパイルするとうまく行きます。  ご教授願います。 エディットコントロールの派生クラスにて 以下の内容を実行しています LOGFONT m_logfont; ←コンストラクタでコントロールから取得済み CFont m_font;←コンストラクタで設定済み BOOL エディットコントロールの派生クラス::SetTextFont( int width, int height) {    ::_tcscpy_s(m_logfont.lfFaceName,sizeof(m_logfont.lfFaceName),_T("MS ゴシック"));   m_logfont.lfHeight = height; m_logfont.lfWidth = width; // m_font.DeleteObject(); // 現在のフォントの削除 // フォントを作成 m_font.DeleteObject(); if( m_font.CreateFontIndirect(&m_logfont) ){ SetFont(&m_font); } // ウィンドウを再描画 return RedrawWindow(); }

このQ&Aのポイント
  • WiFiルーターを変更した結果、スキャンができなくなってしまいました。
  • 新しいWiFiルーターに変えたら、スキャンができなくなってしまいました。どうすれば解決できるでしょうか?
  • WiFiルーターを交換したら、スキャンできなくなりました。解決方法を教えてください。
回答を見る