はじめまして
VC++(6.0 or 7.0)で作成したActiveXを,IE 6.0に貼り付けると
表示はされるのですが,スクロールを行うとクリップ領域の問題なのか,
表示が乱れます。
カレンダーは乱れないのですが・・・・
他のHPを参照しましたが,解決策が得られませんでした。
何方か,回避方法ご存知の方おられますでしょうか?
再描画でも良いのですが,タイミングが判りません。
宜しくお願い致します。
【手順】
1.VisualStudioで,ActiveXを新規作成します。
2.作成したActiveXをビルドします
ここで初期状態の表示は,円を描画します。
3.試験用HTML( test.html)を作成し,下記編集します。
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN >
<HTML>
<HEAD>
<meta http-equiv=Content-Type content=text/html; charset=Shift_JIS>
</HEAD>
<body bgColor=silver>
<object style=Z-INDEX:1; POSITION: absolute; TOP:0px; LEFT:0px
width=400 height=300
classid=CLSID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
(↑作成したActiveXのCLSIDです)
codebase=.>
</object>
</body>
</HTML>
4.IEで,test.htmlを開きます
初期表示される画面(円)が隠れるようIEのウィンドウサイズを狭めると
横スクロールバーが表示されます
5.右スクロールボタンをクリックしてスクロールを行っていると3回目位から
画面が乱れ始めます。
管理人です。
投稿が、少し変な表示になっていたので修正しようと思ったら
タイトルを保存する前に削除してしまい。元のタイトルがわからなくなってしまいました。
仕方がないので、なんとなくこんな感じだったかな?という名前に変えてしまいました。
藤木さん。すいません。m(_ _)m
WM_NCPAINT
WM_WINDOWPOSCHANGED
WM_WINDOWPOSCHANGING
などを受け取ったときに
InvalidateControl();
を呼び出すとかだめでしょうか?
やってみたら多少ちらつくようですが
うまく描画はされるようです。
#自信ないので、調べるなり試すなりして
#確認はしてくださいね。