下層のコントロールに自作ツールチップを適用するには?


twelve  2009-09-12 22:01:40  No: 101977

VB6で予定を表示できるカレンダー(Rainlendarのようなもの)を作成しています。
カレンダーの日付の上にマウスポインタを移動させるとその日の予定がポップアップするようにしたいのですが、うまくいきません。よい方法があれば教えてください。

○やろうとしている事
  Label1 :日付ラベル  BackStyle=不透明
  Label2 :当日丸印 BackStyle=透明
  Label3 :予定数  BackStyle=透明
これらを下から順Label1、Label2、Label3(Label3は右下にずらす)と重ねて表示し、Label1でToolTipをポップアップさせる。ただし、ToolTipは複数行、吹き出し型としたいのでLabel標準のToolTipTextを使用せず、CreateWindowExで自作する。

○問題点
CreateWindowExではhWndが必要となるため、Labelコントロールが使用できない。

○やってみたこと
1.Label1をhWndを持つコントロールにする。
    →hWndを持つコントロールの上層にLabelを配置できないため不適
    →また、hWndを持つ標準コントロールはBackStyleを透明にできないため不適

2.PictureBox内にLabel1〜3を配置し、PictureBoxでToolTipをポップアップさせる。
    →PictureBox上のLabel1〜3の文字が無い場所でしかポップアップせず範囲が狭すぎるため不適

3.Label1をテキストボックス、Label2〜3をユーザーコントロール(hWndあり、BackStyle=透明)とする。
    →ほぼうまくいくが、ユーザーコントロールにした文字の境界に白いギザギザが現れる。

4.CreateWindowExを使用せずFormをリージョンで切り取って吹き出し型とし、タイマーコントロールで表示させる。
    →外枠の作成、文字の配置等、手間がかかりすぎるため不適


twelve  2009-09-13 17:43:09  No: 101978

すみません。
初心者板に気づきませんでした。

初心者版のほうに移します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加