隐藏窗体,隐藏标题栏,,托盘,全屏
2016-08-07 21:43
295 查看
void CHIDEDlg::OnTimer(UINT_PTR nIDEvent)//隐藏窗体 { // TODO: 在此添加消息处理程序代码和/或调用默认值 CRect rc; CRect rect; GetWindowRect(&rect); rc.CopyRect(&rect); CPoint point; GetCursorPos(&point); if (rect.top < 0 && PtInRect(rect,point)) { rect.top = 0; MoveWindow(rect.left,rect.top,rc.Width(),rc.Height()); } else if (rect.top>-3 && rect.top < 3 && !PtInRect(rect, point)) { rect.top = 3 - rect.Height(); MoveWindow(rect.left,rect.top,rc.Width(),rc.Height()); } CDialogEx::OnTimer(nIDEvent); } void CHIDEDlg::OnBnClickedButton1()//隐藏 { LONG Style = ::GetWindowLong(this->m_hWnd, GWL_STYLE); ::SetWindowLong(this->m_hWnd, GWL_STYLE, Style&~WS_CAPTION); ::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE|SWP_FRAMECHANGED); } void CHIDEDlg::OnBnClickedButton2()//显示 { LONG Style = ::GetWindowLong(this->m_hWnd, GWL_STYLE); ::SetWindowLong(this->m_hWnd, GWL_STYLE, Style|WS_CAPTION); ::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); } ===================================最小化到托盘============================================= 添加消息 ON_MESSAGE(WM_MINWINDOW, &CHIDEDlg::OnWM_MINSIZE) afx_msg LRESULT OnWM_MINSIZE(WPARAM wp, LPARAM lp); 添加定义 #define WM_MINWINDOW (WM_USER +2) 消息处理操作 LRESULT CHIDEDlg::OnWM_MINSIZE(WPARAM wp, LPARAM lp) { if (wp != IDR_MAINFRAME) return -1; switch (lp) { case WM_RBUTTONUP: //显示右键菜单 { CMenu popmenu; popmenu.LoadMenu(IDR_MENU1);//MENU制作后再对MENU里不同的选项作不同的点击回应 CPoint point; GetCursorPos(&point); popmenu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_BOTTOMALIGN, point.x, point.y, this); break; } case WM_LBUTTONUP: { this->ShowWindow(SW_NORMAL); break; } default: break; } return 0; } void CHIDEDlg::OnBnClickedButton3()//当按下最小化至托盘按钮时的操作 { // TODO: 在此添加控件通知处理程序代码 NOTIFYICONDATA nid; nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA); nid.hWnd = this->m_hWnd; nid.uID = IDR_MAINFRAME; nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; nid.uCallbackMessage = WM_MINWINDOW; //自定义的消息,当在系统图标上操作时会触发此消息 nid.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME)); StrCpy(nid.szTip, _T("移动到图标显示的文字")); Shell_NotifyIcon(NIM_ADD, &nid); ShowWindow(SW_HIDE); } //=====================全屏============================================================== int cx, cy; cx = GetSystemMetrics(SM_CXSCREEN); cy = GetSystemMetrics(SM_CYSCREEN); CRect rcTemp; rcTemp.BottomRight() = CPoint(cx, cy); rcTemp.TopLeft() = CPoint(0, 0); MoveWindow(&rcTemp); LONG Style = ::GetWindowLong(this->m_hWnd, GWL_STYLE); ::SetWindowLong(this->m_hWnd, GWL_STYLE, Style&~WS_CAPTION); ::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); //========================退出全屏============================================================= 注:clientx,clienty在初始化对话框时获取当前对话框的大小 CRect rec; clientx=rec.Wideth(); clienty=rec.Height(); CRect rcTemp; rcTemp.BottomRight() = CPoint(clientx+20, clienty+40); rcTemp.TopLeft() = CPoint(0, 0); MoveWindow(&rcTemp); LONG Style = ::GetWindowLong(this->m_hWnd, GWL_STYLE); ::SetWindowLong(this->m_hWnd, GWL_STYLE, Style | WS_CAPTION); ::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);
相关文章推荐
- Android全屏,隐藏状态栏和标题栏
- Android隐藏状态栏和标题栏,相当于全屏效果
- windows sdk编程隐藏窗体标题栏
- WinForm实现最小化窗体时隐藏到系统托盘中
- Android Studio中隐藏状态栏(标题栏)实现全屏的方式
- 关于webview用法 以及全屏和隐藏标题栏
- C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标
- Qt界面设计(隐藏窗体标题栏,制作按钮菜单)
- Android 应用程序窗体显示状态操作(显示隐藏标题栏或自定义窗体大小)
- Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法)
- c#显示隐藏的窗体和托盘中的程序
- Android隐藏状态栏和标题栏,相当于全屏效果
- Flex4/Air之隐藏状态栏,标题栏,最大,最小,半闭按钮,窗体可拖拽效果
- Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法)
- 隐藏winform窗体的标题栏
- c#—WinForm/WPF全屏 隐藏标题栏和任务栏
- Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法)
- 设置全屏和隐藏标题栏的方法
- Activity中隐藏标题栏和全屏显示的设置
- Android隐藏状态栏和标题栏,相当于全屏效果