程序最小化到任务栏后,再次在任务栏中点击它时不显示。

guguqiaqia 2010-07-22 10:58:23
程序最小化到任务栏后,再次在任务栏中点击它时不显示。
请问怎样才能让程序显示?
...全文
696 19 打赏 收藏 举报
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wltg2001 2010-07-24
最小化之类的一般都是不用自己处理的吧,楼主是不是加了什么东西啊
  • 打赏
  • 举报
回复
jianghandaxue 2010-07-24
多看看程序的托盘怎么实现的吧........
  • 打赏
  • 举报
回复
deshare 2010-07-24
看多教育片,中毒了
  • 打赏
  • 举报
回复
houzy123 2010-07-24
BOOL CSocketFTPDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here
//rcClient
CRect rect;
GetDesktopWindow()->GetWindowRect(&rect);

GetWindowRect(&rcClient);
rcClient.left=(rect.Width()-rcClient.Width())/2;
rcClient.top=(rect.Height()-rcClient.Height())/2;
int m_width=rcClient.right;
int m_height=rcClient.bottom;

rcClient.right=rcClient.left+m_width;
rcClient.bottom=rcClient.top+m_height;

//============= 不显示对话框
MoveWindow(0,0,0,0);
ShowWindow(SW_HIDE);
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
//=============

//添加系统托盘
char lpszTip[]="*****";
NOTIFYICONDATA data;
data.cbSize=sizeof(NOTIFYICONDATA);
data.hWnd=m_hWnd;
lstrcpyn(data.szTip,lpszTip,sizeof(lpszTip));
data.uCallbackMessage=WM_ONTRAY;
data.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
data.hIcon=m_hIcon;
data.uID=IDR_MAINFRAME;
Shell_NotifyIcon(NIM_ADD,&data);

Initialize();
return TRUE; // return TRUE unless you set the focus to a control
}
void CSocketFTPDlg::OnMenuitemexit()
{
// TODO: Add your command handler code here
CDialog::OnCancel();
}

void CSocketFTPDlg::OnMenuitemset()
{
// TODO: Add your command handler code here
MoveWindow(rcClient);
ShowWindow(SW_SHOW);
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
}
  • 打赏
  • 举报
回复
试试
SetForegroundWindow
  • 打赏
  • 举报
回复
hslinux 2010-07-23
ShowWindow(SW_SHOW)
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lfs09 的回复:]
最小化,是调用 showwindow(SW_SHOWMINIMIZED) 处理的吧
这样处理的,点击任务应该会显示的
[/Quote]
在你需要最小化的地方,运行上代码,然后点击任务栏那个程序图标,是可以显示的,如果不显示,请检查自己的代码
  • 打赏
  • 举报
回复
最小化,是调用 showwindow(SW_SHOWMINIMIZED) 处理的吧
这样处理的,点击任务应该会显示的
  • 打赏
  • 举报
回复
gwb0516 2010-07-23
是不是在某个消息响应函数里,你做了一些特殊的处理?影响到了窗口的还原功能。
  • 打赏
  • 举报
回复
Eleven 2010-07-22
谁知道你代码里是怎么写的。。。
  • 打赏
  • 举报
回复
guguqiaqia 2010-07-22
是下面的任务栏,不是右下角的那个托盘。也就是说不是类似qq的那种最小化。

  • 打赏
  • 举报
回复
dvlinker 2010-07-22
程序最小化到任务栏后,应该是调用ShowWindow(SW_HIDE)将窗口掩藏起来, 当我们在任务栏中点击它时掉ShowWindow(SW_HIDE)将之显示出来。
-----------------------
LZ说的任务栏,是指托盘图标区域吗?是最小化到托盘区域吗?
  • 打赏
  • 举报
回复
死锁?
  • 打赏
  • 举报
回复
chengtao999 2010-07-22
呵呵,你把窗口句柄赋到NOTIFYICONDATA结构体里面去了么?

去看看那个结构体变量的描述。
  • 打赏
  • 举报
回复
Eleven 2010-07-22
[Quote=引用 6 楼 guguqiaqia 的回复:]
最小化的代码 就是mfc工程系统自带的功能。
[/Quote]
那你究竟写了什么呢?
  • 打赏
  • 举报
回复
向立天 2010-07-22
[Quote=引用 6 楼 guguqiaqia 的回复:]
最小化的代码 就是mfc工程系统自带的功能。
[/Quote]
那显示也是MFC自己处理啊
  • 打赏
  • 举报
回复
guguqiaqia 2010-07-22
最小化的代码 就是mfc工程系统自带的功能。
  • 打赏
  • 举报
回复
dvlinker 2010-07-22
LZ可以说清楚一点嘛...
  • 打赏
  • 举报
回复
adamwyb 2010-07-22
发最小化的关键代码看看
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2010-07-22 10:58
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……