当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

C++技巧:窗口应用技巧总结

1. 在任务栏隐藏对话框
  ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
    2. 使对话框为顶层窗口
 SetWindowPos(&this->wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
    3. 在运行时添加最大化,最小化按钮
 SetWindowLong(this->m_hWnd, GWL_STYLE,
                  GetWindowLong(this->m_hWnd, GWL_STYLE) |
                  WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
     UpdateWindow();
    4. 使能对话框右上角关闭按钮
 在OnInitDialog中
    方法一:
       CMenu* menu = GetSystemMenu(FALSE);
       menu->ModifyMenu(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED );
    方法二:
       CMenu* menu = GetSystemMenu(FALSE);
       menu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
    5. 当对话框一部分在屏幕外时,显示全部对话框
 SendMessage(DM_REPOSITION);

    6. 改变鼠标外形

    添加 WM_SETCURSOR 消息映射函数

 BOOL CTest6Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
    {
         SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HELP));
         return 0;
    }

    7. 改变对话框背景色和文本颜色

    在CTest6App的InitInstance中添加SetDialogBkColor(RGB(255,0,0), RGB(0,255,0));

    8. 改变对话框caption上的图标

    导入自己的图标资源到工程中,把原来ID为 IDR_MAINFRAME 的资源删除,把新的图标的ID命名为IDR_MAINFRAME

    9. 在主对话框显示前,显示一个login对话框

 BOOL CTest6App::InitInstance()
     {
          //...
          int nResponse;
          CLoginDlg loginDlg; [Page]
          nResponse = loginDlg.DoModal();
          if (nResponse == IDOK)
          {
          }
          if (nResponse == IDCANCEL)
          {
               return FALSE;
          }

          CTest6Dlg dlg;
          m_pMainWnd = &dlg;
          int nResponse = dlg.DoModal();
          if (nResponse == IDOK )
          {
          }
          else if (nResponse == IDCANCEL)
          {
          }
          return FALSE;
     }

共5页 首页 上一页 1 2 3 4 5 下一页 尾页 跳转到
相关内容
赞助商链接