06/11/23 20:29:23
void CTestDlg::OnButton2()
{
m_button1.ShowWindow(SW_HIDE);
}
これにより、ボタン2を押すとボタン1は非表示状態になるのですが、
void CTestDlg::OnButton3()
{
m_button1.SetRedraw(FALSE);
m_button1.SetRedraw(TRUE);
m_button1.Invalidate();
}
としてボタン3を押すと、ボタン1が再び出てきてしまいます。
Invalidateだけだと出てきません。
SetRedrawって、SW_HIDEも勝手に戻してしまうものなのでしょうか?
これから作ろうとしているものは、
SetRedraw(FALSE)~SetRedraw(TRUE)の間でいろいろ内部情報の更新をして、
その結果に合わせて表示状態も切り替えようとしているのですが、
非表示にしても、最後のSetRedraw(TRUE)で表示状態に戻ってしまいます…。