WEB开发网
开发学院软件开发VC 如何有效地使用对话框 阅读

如何有效地使用对话框

 2010-07-01 20:43:00 来源:WEB开发网   
核心提示:Q:如何在对话框中加入工具条在 OnInitDialog 中加入下面代码:BOOL CYourDlg::OnInitDialog(){ CDialog::OnInitDialog(); // Create the toolbar. To understand the meaning of the styles used

Q:如何在对话框中加入工具条在 OnInitDialog 中加入下面代码:

BOOL CYourDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    // Create the toolbar. To understand the meaning of the styles used, you
    // can take a look at the MSDN for the Create function of the CToolBar class.

    ToolBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_TOOLTIPS |CBRS_FLYBY | CBRS_BORDER_BOTTOM);
   // I have assumed that you have named your toolbar''s resource as IDR_TOOLBAR1.
   // If you have given it a different name, change the line below to accomodate
   // that by changing the parameter for the LoadToolBar function.

   ToolBar.LoadToolBar(IDR_TOOLBAR1);

   CRect rcClientStart;
   CRect rcClientNow;
   GetClientRect(rcClientStart);
   // To reposition and resize the control bar
   RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,0, reposQuery, rcClientNow);
   CPoint ptOffset(rcClientNow.left - rcClientStart.left,rcClientNow.top-rcClientStart.top);
   CRect rcChild;
   CWnd* pwndChild = GetWindow(GW_CHILD);
   while (pwndChild)
   {
    pwndChild->GetWindowRect(rcChild);
    ScreenToClient(rcChild);
    rcChild.OffsetRect(ptOffset);
    pwndChild->MoveWindow(rcChild, FALSE);
    pwndChild = pwndChild->GetNextWindow();
   }
   CRect rcWindow;
   GetWindowRect(rcWindow);
   rcWindow.right += rcClientStart.Width() - rcClientNow.Width();
   rcWindow.bottom += rcClientStart.Height() - rcClientNow.Height();
   MoveWindow(rcWindow, FALSE);
   // And position the control bars
   RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

   return TRUE; // return TRUE unless you set the focus to a control
 }

Q:如何改变对话框的形状?

可用下面一些函数:

CreatePolygonRgn

CreateRectRgn

CreateRoundRectRgn 等.

CRgn m_rgn; // Put this in your dialog''s header file. i.e. a member variable
 // This Gets the size of the Dialog: This piece of code is to be placed in the
 // OnInitDialog Function of your dialog.
 CRect rcDialog
 GetClientRect(rcDialog);
 // The following code Creates the area and assigns it to your Dialog
 m_rgn.CreateEllipticRgn(0, 0, rcDialog.Width(), rcDialogHeight());
 SetWindowRgn(GetSafeHwnd(), (HRGN) m_rgn, TRUE);

1 2 3 4 5 6  下一页

Tags:如何 有效 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接