2 //ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW,1);//任务栏隐藏
使用了任务栏隐藏之后, 最小化,还原按钮就没有了。
3 处理主界面的最小化按钮和关闭按钮,是将主界面隐藏。
void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
//处理最小化按钮和关闭按钮
if(nID == SC_CLOSE || nID == SC_MINIMIZE )
{
ShowWindow(SW_HIDE);
m_bIsShow = FALSE;
return;
}
怎么弹出的对话框最小化时显示到任务栏
如何弹出的对话框最小化时显示到任务栏
现在点最小化时,跑到左下角任务栏的上面了,怎么实现正常的显示在任务栏呢?
不是托盘在任务栏右下角的那种~~~~
谢谢!
------解决方案--------------------
设置 WS_EX_APPWINDOW 即可
------解决方案--------------------
ModifyStyleEx(0, WS_EX_APPWINDOW);
设置WS_EX_APPWINDOW即可!
5 非模态对话框
CDialog* pdlg;//对话框指针。
pdlg =new CBDlg;//创建对话框类对象。赋值给指针。
pdlg->Create(IDD_ADlg);//对话框的ID。
pdlg->ShowWindow(SW_SHOW);//显示窗口。
6 模态对话框
我现在ADlg显示是在XXApp的Instance()中实现:
CADlg padlg;//对话框对象
m_pMainWnd = &padlg;//
padlg.DoModal();//模态对话框
7 主界面的退出按钮响应。
//退出消息接收。
LRESULT CMyDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
switch(message)
{
//如果是用户定义的消息
case MY_WM_NOTIFYICON:
{
//鼠标双击时主窗口出现
if(lParam==WM_LBUTTONDBLCLK)
{
AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);
m_bIsShow = TRUE;
//停止闪烁
KillTimer(1);
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_TrayIcon.hIcon = hIcon;
::Shell_NotifyIcon(NIM_MODIFY,&m_TrayIcon);
if(hIcon)
{
::DestroyIcon(hIcon);
}
}
//鼠标右键单击弹出选单
else if(lParam==WM_RBUTTONDOWN)
{
CMenu menu;
menu.LoadMenu(IDR_MENU_RIGHT); //载入事先定义的选单
CMenu *pMenu = menu.GetSubMenu(0);
CPoint pos;
GetCursorPos(&pos);
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());
}
break;
}
//如果是系统消息
case WM_SYSCOMMAND:
{
//接收到最小化消息和关闭消息时主窗口隐藏(即按关闭和最小化按钮)
if(wParam == SC_MINIMIZE)
{
AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);
return 0;
}
if(wParam == SC_CLOSE)
{
OnExit();
return 0;
}
break;
}
default:
break;
}
return CDialog::WindowProc(message, wParam, lParam);
}
//退出响应函数。
void CMyDlg::OnExit()
{
int ret=AfxMessageBox("确定退出软件吗?",MB_OKCANCEL);
if (ret==IDOK)
{
CDialog::OnOK();
}
else if (ret==IDCANCEL)
{
return;
}
}
8 托盘不用删掉。
9 串口已经打开后,当变换了com号时,要同时关闭该com端口。
//串口号改变。
void CWork::OnSelchangeCombo5()
{
// TODO: Add your control notification handler code here
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
//设置发送按钮为有效。
GetDlgItem(IDC_OPEN_SERIS)->EnableWindow(true);
}
10 给软件设置只能打开一个软件。
// {76D2EE9D-E79C-4ce5-829C-1F5BC9E7E793}
DEFINE_GUID(<<name>>,
0x76d2ee9d, 0xe79c, 0x4ce5, 0x82, 0x9c, 0x1f, 0x5b, 0xc9, 0xe7, 0xe7, 0x93);
0x76d2ee9d, 0xe79c, 0x4ce5, 0x82, 0x9c, 0x1f, 0x5b, 0xc9, 0xe7, 0xe7, 0x93
#define one "0x76d2ee9d, 0xe79c, 0x4ce5, 0x82, 0x9c, 0x1f, 0x5b, 0xc9, 0xe7, 0xe7, 0x93"