繁体   English   中英

MFC中,我们如何增加或减少对话框的大小,以便它也可以改变所有按钮和菜单的大小?

[英]How can we increase or decrease the size of dialog box so that it can also change the size of all the button and menu also in MFC?

void CMFCApplication6Dlg::OnFontIncreasefont()
{

    /*LPCTSTR text = _T("Hello World");
    SetDlgItemTextW(IDD_MFCAPPLICATION6_DIALOG,text);*/

    Correct rect;
    GetClientRect(&rect);
    

x = rect.Height();
    int y = rect.Width();
    cout << x << endl;
    cout << y << endl;
    SetWindowPos(NULL, 200, 300, x + 150, y + 10, SWP_NOMOVE);
    CFont font;
    font.CreateFont(
        fon + 5,                        // nHeight
        0,                         // nWidth
        0,                         // nEscapement
        0,                         // nOrientation
        FW_NORMAL,                 // nWeight
        FALSE,                     // bItalic
        FALSE,                     // bUnderline
        0,                         // cStrikeOut
        ANSI_CHARSET,              // nCharSet
        OUT_DEFAULT_PRECIS,        // nOutPrecision
        CLIP_DEFAULT_PRECIS,       // nClipPrecision
        DEFAULT_QUALITY,           // nQuality
        DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
        _T("Arial"));                 // lpszFacename

    fon = fon + 5;
    GetDlgItem(IDC_STATIC1)->SetFont(&font);
    GetDlgItem(IDC_STATIC2)->SetFont(&font);
    GetDlgItem(IDOK)->SetFont(&font);
    GetDlgItem(IDC_EDIT2)->SetFont(&font);
}

我想以所有按钮和菜单大小应同时更改的方式更改对角线大小。

我试过上面的代码,但它会手动获取菜单或按钮的所有 ID,但我需要的是应该自动完成。

我试过上面的代码,但它会手动获取菜单或按钮的所有 ID,但我需要的是应该自动完成。

您可以使用一个简单的循环将其自动化:

for (CWnd* wnd = GetWindow(GW_CHILD); wnd != NULL; wnd = wnd->GetWindow(GW_HWNDNEXT))
{
  wnd->SetFont(&font);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM