バルーン

[戻る]
crez 2006/07/30(日) 04:20:35
エディットボックスに無効な数字(例えば小さすぎる数字)などが
入力されたときに、エラーメッセージをMessageBoxではなく
バルーンを使って表示したいのですが、どうすれば良いでしょうか?
CToolTipCtrl ttc;

ttc.Create(m_hWnd, 0, 0, TTS_BALLOON);
ttc.Activate(TRUE);
ttc.SetTitle(TTI_ERROR, L"エラータイトル");

ttc.AddTool(CToolInfo(TTF_SUBCLASS, GetDlgItem(IDC_EDIT), 0, 0, L"エラーメッセ
ージ"));
こうしてしまうとエディットボックスにカーソルを置かないとエラーメッセージが
表示されないし、IDC_EDITに元からある説明のためのバルーンに重なって表示されてし
まいます。

三草 2006/07/31(月) 22:12:35
よく調べていないので、見当違いでしたら申し訳ないです。
MSDN見ていたら、それっぽいものを見かけたので。。。
http://www.microsoft.com/japan/developer/library/modcore/deovrusingballooncontrols.htm

上記がダメそうで、あくまでバルーンにこだわるのであれば、
自分でそういうウィンドウを作ってしまうのはいかがでしょう。
リージョンとか使えば作れそうな気がします。
http://techtips.belution.com/ja/vc/0007/

PATIO 2006/08/01(火) 15:30:06
ツールチップコントロールを使っているからそうなっているのではないですかねぇ。
ウインドウの形状をバルーンのような感じにしたいだけなのであれば、三草さんが
書かれているように非矩形のウインドウをリージョンでこさえて表示してしまった方が
簡単そうですね。
まあ、外観やら文字列長に合わせてウインドウサイズを調整するとかその辺の小細工は
要りそうですけれど。

akey 2006/08/01(火) 16:25:26
TOOLINFOのuFlagsにTTF_CENTERTIPを指定すると
ウインドウズエクスプローラ風に下方向に出るようです。

好きなタイミングで表示させるにはTTM_TRACKACTIVATEメッセージを使うようです。

古いスレッドには追加発言できません。