通知
すべてクリア
Topic starter
2009年9月3日 2:48 PM
VS2008 VC++で ATL/WTL使っています
IEのツールバーを作っていてツールバーのWM_CTLCOLORSTATICを下のように処理して
CStaticの背景を消しています
LRESULT OnCtlColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
SetBkMode((HDC)wParam,TRANSPARENT);
return ((LRESULT)GetStockObject(NULL_BRUSH));
}
が、このようにするとCStaticの背景は透明になってるっぽいのですが、たとえばIEの上
にFireFoxを開いていて、IEのウィンドウをアクティブにすると、CStaticの背景の部分に
そこにそれまで表示されていたFireFoxの画面が写りこみます。
どのように解決したらいいのでしょうか。
よろしくお願いします。
2009年9月3日 3:20 PM
提示された方法で背景が透明になると思っている人が多いのですが、
厳密に言うと、その方法では常に安定して透明の状態にはできません。
TextOutで、文字を書いた方がはるかにましです。