MFC 禁止对话框调整大小或移动改变字体颜色字号(小知识点)2020-08-05 12:55:51

( 还没有投票,继续加油! )
分享:
31.3K
禁止调整大小
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
  if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
  cs.cx = 630;//宽
  cs.cy = 560;//高
  //cs.style &= ~WS_MAXIMIZEBOX;//禁止最大化
  cs.style &= ~WS_THICKFRAME;//禁止调整大小
  //cs.style &= ~WS_MINIMIZEBOX;//禁止最小化
  cs.lpszName = "TestName";
  return TRUE;
}

这是网上通用方法,禁止移动对话

void MyTestDlg123::OnSysCommand(UINT nID, LPARAM lParam){
    if (nID == SC_MOVE || nID == 0xF012) {//forbidden Move
    return;
  }else
  {
    CDialogEx::OnSysCommand(nID, lParam);
  }
}


禁止调整对话框还有一个方法

在工程的资源视图中双击该界面,在右下角的属性=》外观=》Border调整,将默认的"Resizeing"改为"对话框外框"即可。

其中还有些很重要的变量:

Caption =>对话框的标题

Maximize Box=>true 启动用对话框右上角最大化图标(默认是不启用的)

Minimize Box=>true 启动用对话框右上角最小化图标

Title Bar = >true 启用标题栏

Horizontal / Vertical Scrollbar =>true 启用横竖滚动条

Font(Size)=>管控总界面的字体字号(英文采用Times New Roman(10)就挺漂亮)


如果动态的改变文字的颜色与字号呢?

在该界面类里如果没有OnCtlColor这个消息函数,就在类向导里,为该类添加这个函数。操作,类向导=》选择该类的cpp,点命令后面的消息按纽,搜OnCtrlColor,看到它就双击它,就会添加并跳到该函数处,修改代码如下:

HBRUSH My2020Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
  HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
  CFont m_font;
  m_font.CreatePointFont(140, _T("Times New Roman"));
                                                                                                                                                                                                                   
  if (pWnd->GetDlgCtrlID() == IDC_NOTICE)
  {
    pDC->SetTextColor(RGB(255, 0, 0));
    pDC->SelectObject(&m_font);
  }
  // TODO: 如果默认的不是所需画笔,则返回另一个画笔
  return hbr;
}

其中DC_NOTICE,就是需要调整的字体的static text ID,调整字体大小需要构建一个CFont,光改变颜色不用。

这个字号140虽说是14号的字,但是与界面的设置大小字号并不相符合,看着调整吧,满意为止。

RGB就是红绿蓝的意思

RGB(255,0,0) 红色

RGB(0,255,0) 绿色

RGB(0,0,255) 蓝色

RGB(64,64,64)  灰色

RGB(0,0,0) 黑色

RGB(255,255,255) 白色







头像

snowcoal
  • MFC
  • 对话框
  • 禁止调整_大小
  • 对话框属性

收藏到我的私密空间

标题:MFC 禁止对话框调整大小或移动改变字体颜色字号(小知识点)

作者:花花世界

你暂未登录,请登录后才可收藏至您的私密空间 确认取消
雪炭网

键盘操作 更便捷 -雪炭网雪中送炭-乐趣无限

如果本站的内容有幸帮助到了您,建议您了解一下当页的广告内容哦,我们的进步离不开您的支持,Thank you~