• 締切済み

FlexGridのセル内文字を点滅させる方法

VC++2005のMFC環境でFlexGridを使用しています。 SetTextMatrix関数にて、セル内に挿入した文字に対し、 点滅させ表示したいのですが、 何か良い方法などありましたら、ご教示お願い致します。

みんなの回答

回答No.1

 こんにちは。  「フォントの点滅」とは、リアルタイムにフォントが点滅すると言う事でしょうか(ゲームみたいに)。  手法の良し悪しは別として、OnTimer()でセルのフォント色を交互に切り替えれば、簡単に表現出来ます。以下参考程度に。 //ヘッダに以下のメンバ変数を追加 class CTestDlg { bool m_bBlink;//点滅フラグ CArray<CPoint, CPoint&> m_ptArray;//セル位置の配列 CMSFlexGrid m_flexGrid; }; //ウィンドウやダイアログの初期化 BOOL CTestDlg::OnInitDialog() { //セル初期化用の使い捨て構造体 struct CInitData { CInitData(long x, long y, const CString& string) : point(x, y), string(string){ } CPoint point;//セルの位置 CString string;//セルの文字 } data[] = { CInitData(1, 1, "点滅テスト1-1"), CInitData(2, 2, "点滅テスト2-2"), }; for(int n = 0; n < 2; ++n) { m_ptArray.Add(data[n].point); m_flexGrid.SetTextMatrix(data[n].point.x, data[n].point.y, data[n].string); } //取り敢えずタイマーを0.25秒辺りでセット this->SetTimer(1000, 250, NULL); }; //タイマー void CTestDlg::OnTimer(UINT nIDEvent) { // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください m_bBlink ^= true; for(int n = 0; n < m_ptArray.GetSize(); ++n) { m_flexGrid.SetCol(m_ptArray[n].x); m_flexGrid.SetRow(m_ptArray[n].y); //フォントの白黒点滅 m_flexGrid.SetForeColor(m_bBlink ? 0x0 : 0xffffff); } CDialog::OnTimer(nIDEvent); }

zigen8513
質問者

お礼

ご回答ありがとうございます。 なるほど、OnTimerを用いて文字色を反転させれば良いのですね。 参考にさせていただきます。ありがとうございました。

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

関連するQ&A

  • FlexGridの選択されたセル内の文字色を変える方法

    VC++2005のMFC環境でFlexGridを使用しています。 以前、 http://oshiete1.goo.ne.jp/qa5081341.html にてセル内文字の点滅方法を質問させて頂き、 ご回答頂いた内容を元にSetCellForeColorを用いて、 文字色を切り替えることで、点滅させることが出来ました。 しかし、点滅しているセルを選択すると、 点滅表示から、通常のセル選択状態(文字は白、文字以外領域は青) となってしまい、点滅しません。 ※選択状態から非選択状態にすると、また点滅します。 選択状態でも、文字色が切り替わるようにするには、 どのような実装を入れることで実現させればよいのでしょうか? 解決法をご存知の方、ご教示お願い致します。

  • MS-FlexGridのライセンスについて

    とあるアプリケーションにMS-FlexGridを使用してセル(グリッド)をつけました。 開発環境(VC++6.0)での表示自体は上手くいったのですが、VCがインストールされていないPCではセル(グリッド)が表示されません。 ライセンスキーの書き込みが必要なことをネットで見つけたのですが、C++6.0で設定する方法が見つかりませんでした。 開発環境(VC++6.0)のインストールされていないPCで、セル(グリッド)表示できる方法はあるのでしょうか? 一応やりたいことをまとめます ・Windows2000_SP4以上で動作させたい ・開発環境はVisual C++6.0で行う ・MS-FlexGrid(ocx)を使用する ・インストール先のPCにはVisualStadio.MS-Office等はインストールされていない(しない) ・インストール時にはocxのレジストリ登録はしない(exeを立ち上げるだけで動作させたい) もしMS-FlexGridで不可能な場合は、他に行えそうなグリッドを教えていただければと思います。

  • FlexGridで文字色を変更。

    FlexGrid にてあるセルに文字列を表示します。で、その文字列の途中から文字色を変更したいのですが、可能なのでしょうか?

  • アイテムを点滅させる

    VC6でダイアログベースのMFCプログラムを作成中なのですが、アイテムを点滅表示させたいと考えています。 ShowWindow()を使って実現しようとしているのですが、うまくいきません。 アイテムを点滅させるような関数はないのでしょうか? また、実装方法をご存知の方は教えていただけないでしょうか? すいませんが、よろしくお願い致します。

  • セル背景や文字を点滅させる方法

    エクセルの関数や表作成、基本的な事は身につけることができ、次のステップに進もうと思い、マクロについて勉強したいと思い質問させていただきました。 今の目標としては、ある数値以下の時、またはそれ以上のときにセルを点滅、または文字を点滅させる方法などがありましたら教えて頂きたいです。条件付き書式でセル、またはフォント色を変えられても、点滅をさせる方法などは私には到底できる領域ではなく、マクロについても全く無知です。分かる方がいらしたらどうか教えてください。私のレベルはとりあえず基本的関数、マクロ以外の機能を理解できる程度です、尚プログラム言語については今から勉強という段階で全く分かりません。どうかこの程度のレベルの私ができる程度に説明して下さる方宜しくお願い致します。

  • VS-FlexGridについて

    VS-FlexGrid 6.0(トライアル版)を使用したMFCプロジェクトがあるのですが、最新版のVS-FlexGrid 8.0のインストーラしか入手できず、プログラムを実行する事ができません。VS-FlexGrid 6.0(トライアル版)を入手する方法、または、8.0で6.0のプログラムを動かす方法(変換方法)などわかる方がいましたら、ご教授願います。

  • エクセルのセルや文字を点滅表示できますか?

    エクセルで入力管理を行っています。注意事項や必ず入力して頂きたい場所に、セルや文字を点滅表示にさせ注意を引きたく、エクセルのヘルプだったか忘れましたが、イルカが声を出して時々現れます、あんな感じで文字を常に点滅させ、入力ミスをなくしたく、なにか簡単にできる方法があれば教えて下さい。

  • FlexGridの一部のみ表示を更新したいのです。

    FlexGridの一部のみ表示を更新したいのです。 VisualStudio2003、C#でWindowsアプリを開発しています。 一覧表示にFlexGridを使用しています。 とある処理の中で、FlexGridに表示するデータの一部が変更されるので、 その変更値を画面に反映するためにFlexGridを再描画する必要があり、 Refreshしているのですが、一覧の再描画に時間がかかっています。 変更のあったセル、または1行のみ、再描画(表示を更新)する事は可能でしょうか?

  • Excelで文字の点滅方法

    Excelでセル内の文字を点滅する方法を教えてください。 ヘルプや書籍で検索したのですが分かりませんでした。 できましたら、マクロを使わずにしたいのですが、無ければマクロでも可です。 宜しくお願いします。 使用しているVersionは"2000"です。

  • a1のセルの11文字目とb1のセルの3文字目が合っているか確認したい

    a1のセルの11文字目とb1のセルの3文字目が合っているか確認し、合っていれば○、間違っていたら×を表示したいのですが どのように関数を組合せていいのかわかりません。 宜しくお願い致します