我在dialog的OnInitDialog中加入ShowWindow(SW_HIDE);
怎麼dialog不隱藏的?

解决方案 »

  1.   

    就是这样的,原因我至今也不明白!
    如果你真的想让程序一启动就隐藏,那你可以这样做
    1.先定义一个变量bool m_bhide=false;
    2。然后添加wm_windowposchanging这个消息(这个消息是将新大小或位置通知给窗口)
    3。在这个消息处理函数中加入
     if (!m_bvisible)
     {
      lpwndpos->flags &= ~swp_showwindow;
     }
    4。在让窗口显示的处理函数中加入
      m_bvisible=true;
      showwindow(sw_show);
    最后建议大家用热键的方式使对话框显示,只是个编写木马的小技巧。希望大家可以共同进步!(文章是我读codeproject里面一个文章的一点,体会)谢谢!大家看了我写的一点垃圾,(不要砍我,啊!………………)88
      

  2.   

    这是因为INITDIALOG是在CREATEDIALOG之中调用的,在调用完了之后,系统才会显示对话框的,由于在模态对话框中我们无法得到其消息循环的,如果你想达到这种效果,你不如做一个非模态的然后自己模拟就行了
      

  3.   

    Thanks above tips
    經過我的學習,我發現在OnShowWindow中加入一個ShowWindow(SW_HIDE);
    也可也實現hide的,但效果不是太好,屏幕上會顯示一下然後再hide.不過
    相對來說這樣比較簡單。
     coolstar14(寒星溪月) 的方法我試了,可行的,不過好像二個 m_bvisible
    的地方應改為m_bhide吧,可能是您的筆誤吧。