ボタンを消すと、その後ろが真っ白になってしまう、色を設定したい。

[戻る]
竹千代 2005/04/23(土) 21:58:59
自作のボタンをDestroy()で消すと、その後ろが真っ白になってしまいます。
バックに色を設定していても真っ白になってしまいます。
なにか、方法は、ないのでしょうか?

KING・王 2005/04/24(日) 00:25:49
MFCの使用の有無や、そのボタンが消される前にダイアログ上あったのか、MDIなどのクライ
アントウィンドウ上にあったのか、
ツールバー上にあったのか、など不明点がやまずみなので、このままでは回答のしようがないよ
うな気がしますが。

取りあえず、単純に再描画がされていないだけでは?

回答になっていませんが、とりあえずもう少し詳しい環境や、できればソースコードの添付な
ど、
情報の提供をしないと、回答がえられませんよ。

wood 2005/04/24(日) 06:19:08
>自作のボタン
って何?
普通 ボタンコントロールを使うんじゃないの
>バックに色を設定していても
って何のコントロールに対して指定してんの?

「竹千代」の開発・実行環境はどうなの
OSは?
バージョンは?
コンパイラの種類は?
サービスパック、PTF、パッチ はどこまで、何の種類まで当ててあるの?

>発言される前に「使用上の注意」を必ずお読み下さい。
って読まなかったの
まさか マルチポスト なんてしてないよね

何でもありで書き込む人結構いるので不透明な質問はやめましょう

どう聞いていいのか分からなければ、ソースコード載せて見てください

竹千代 2005/04/24(日) 09:44:34
失礼しました。
OSは、XP。
コンパイラは、VC++6.0.
自前のボタンをCBitmapbuttonクラスをつかって作成しています。

ソースは、ボタン作成は以下のとおりで、
    CClientDC pDC(this) ;

    int    ix,iy ;
    ix = 900 ;
    iy = 560 ;
    bitmapButton[0].Create(_T("_"),
                
    WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,
                    CRect(ix,iy, ix+79, iy+124),
                    this,
                    ID_SO_START);
    VERIFY(bitmapButton[0].LoadBitmaps("戻るU","戻るD"));

戻るをクリックすれば、デストロイ実行するようにしてあります。
        
        bitmapButton[0].DestroyWindow() ;
        pDC.FillRect(CRect(0,0,width,height), &CBrush(RGB(0x80,0,0))) ;

                     :
                     :
バックグランドも書いているのですが、ボタンのあと(白くなってしまう)が残りま
す。

Y太 2005/04/27(水) 19:01:36
> pDC.FillRect(CRect(0,0,width,height), &CBrush(RGB(0x80,0,0)));
この部分のCRECTの値がおかしいのではないでしょうか?

竹千代 2005/04/28(木) 20:03:18
KING・王殿、wood 殿、Y太 殿、レスポンスありがとうございます。
まだ、解決は、していませんが、一部、私自身の間違いにきずきました。
ボタンは、クリエイトされるときにビューにかかれるのではないということなので、
デストロイしたときに消えるのでは、ないと思われます。
フレームワークなので、どのタイミングで消されるのかは、わかりませんが、
とにかく、タイミングの問題であるようです。

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