広島在住の神野です。
OCXはろくに使ったことがなく、ましてや作ったことなんかないんですが。

Tue, 23 Feb 1999 16:26:00 +0900 ごろに
<1...@yong.sisd.dnp.co.jp> の
"[vcpp 00026391] 背景を透過するOCXの作成技法について" のメールで
Yong <y...@sisd.dnp.co.jp> さんは書きました。

> 透過させるために、CMyCleControl::OnCreate() で WS_EX_TRANSPARENT
> を拡張スタイルに設定して、描画時にSetBkMode(TRANSPARENT)の状態で
> 文字を描画します。そうすると文字が画像に対して透過されます。

WS_EX_TRANSPARENT まで必要でしょうか?
SetBkMode(TRANSPARENT) だけで充分なように思いますが。

> しかし、当然すでに文字列が表示されている部分に別文字列を描画しよ
> うとすると表示矩形部の背景を消去させなけれななりませんが、CWnd::
> Invalidate()、CWnd::RedrawWindow()、COleControl::InvalidateControl()
> 関数を呼び出しても背景(の画像)が更新されません。そのため、文字が
> どんどん重なって描画されてしまいます。

背景の画像は、いつ(どんなタイミングで)描いているんでしょうか?
想像するにWM_ERASEBKGNDではないかと思うんですが、
その辺りの処理が何かおかしいのではないでしょうか?

もしかして、画像は別ウィンドウに描画していて、そのための
WS_EX_TRANSPARENTでしょうか??

-----------------------------
神野健吾 <k...@orange.co.jp>