怎么在任务栏不显示窗口呢?

3m2u 2006-11-22 11:55:14
就一个对话框程序
这样写居然不行,看好像就是用这种方法啊。难道用法有问题?

BOOL CDlgtestDlg::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
long oldExStyle = GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE);
oldExStyle |=WS_EX_TOOLWINDOW;
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,oldExStyle);

return CDialog::Create(IDD, pParentWnd);
}
...全文
2058 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
3m2u 2006-11-23
  • 打赏
  • 举报
回复
WM_CREATE
和虚函数
Create
PreCreateWindow 有啥区别? 主要是前两者
3m2u 2006-11-22
  • 打赏
  • 举报
回复
真受不了。我查到所有人都是这么说可是我试着就是不行。
就一个简单向导生成的对话框程序。然后加了如下代码怎么都不好使,达不到目的。

BOOL CDlgtestDlg::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
/*
long oldExStyle = GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE);
oldExStyle |=WS_EX_TOOLWINDOW;
oldExStyle |=~WS_EX_APPWINDOW;
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,oldExStyle);
*/
::SetWindowLong ( GetSafeHwnd () , GWL_EXSTYLE , WS_EX_TOOLWINDOW );

return CDialog::Create(IDD, pParentWnd);
}

BOOL CDlgtestDlg::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
::SetWindowLong ( GetSafeHwnd () , GWL_EXSTYLE , WS_EX_TOOLWINDOW );

return CDialog::PreCreateWindow(cs);
}
YewPu 2006-11-22
  • 打赏
  • 举报
回复
什么意思啊?
palmax 2006-11-22
  • 打赏
  • 举报
回复
去掉WS_EX_APPWINDOW就可以了
Snow_Ice11111 2006-11-22
  • 打赏
  • 举报
回复
不过这种方法隐藏后标题栏下面会有一条白色,不满意的话也可以用下面代码代替:
--------------------------------------------------------------
CWnd *pwnd=FindWindow("ProgMan",NULL);
if(pwnd)
this->SetParent(pwnd);
else
AfxMessageBox("未找到藏身之处,隐藏失败!");
--------------------------------------------------------------
Snow_Ice11111 2006-11-22
  • 打赏
  • 举报
回复
你加哪儿了?要在WM_CREATE消息的响应函数中加,如:

int CDlgtestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
::SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,WS_EX_TOOLWINDOW); //加在这里
return 0;
}
qiujian5628 2006-11-22
  • 打赏
  • 举报
回复
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,WS_EX_TOOLWINDOW);

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧