VC小技巧汇总之窗口技巧

 更新时间:2014年07月21日 12:00:01   投稿:shichen2014  
这篇文章主要介绍了VC小技巧汇总之窗口技巧,功能非常实用,对于VC开发有一定借鉴价值,需要的朋友可以参考下

本文搜集汇总了VC小技巧的窗口技巧,对于VC程序开发的窗口设计而言有一定的借鉴价值,详情如下:

1.让窗口一启动就最大化

把应用程序类(CxxxApp)的 InitInstance() 函数中的

m_pMainWnd->ShowWindow(SW_SHOW); 

改为

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);

则窗口一启动就最大化显示。

2.如何设置窗口的初始尺寸

在将应用程序类(CxxAPP)的 InitInstance() 函数中加入:

m_pMainWnd->SetWindowPos(NULL,x,y,Width,Height,SWP_NOMOVE);

Width为窗口宽度,Height为窗口高度
SWP_NOMOVE表示忽略位置(x,y)。
如:

BOOL CDzyApp::InitInstance()
{
  AfxEnableControlContainer(); 
  …… 
  // The one and only window has been initialized, so show and update it.
  m_pMainWnd->SetWindowPos(NULL,0,0,750,555,SWP_NOMOVE);//设置窗口的初始大小为750*555
  m_pMainWnd->ShowWindow(SW_SHOW); 
  m_pMainWnd->UpdateWindow(); 
  return TRUE; 
}

3.让窗口居中显示

以下两种方法可任选其一:

①在应用程序类(CxxxApp)的 InitInstance() 函数中加入:

m_pMainWnd->CenterWindow( GetDesktopWindow() );

②在主框架类(MainFrm.cpp)的OnCreate()函数中加入:

CenterWindow( GetDesktopWindow() );

如:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
  if (CFrameWnd::OnCreate(lpCreateStruct) == -1) 
  return -1; 
  …… 

  // TODO: Delete these three lines if you don't want the toolbar to 
  // be dockable 
  m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); 
  EnableDocking(CBRS_ALIGN_ANY); 
  DockControlBar(&m_wndToolBar); 

  CenterWindow( GetDesktopWindow() ); //使窗口打开时处于屏幕正中

  return 0; 
}

4.如何修改窗口标题

窗口标题一般形式为:文档标题 - 程序标题

(1)设置文档标题:

在文档类(CxxxDoc)的OnNewDocument()函数中加入语句:SetTitle("文档名");
如:TextEditorDoc.cpp:

BOOL CTextEditorDoc::OnNewDocument() 
{ 
  if (!CDocument::OnNewDocument()) 
    return FALSE; 
  // TODO: add reinitialization code here 
  // (SDI documents will reuse this document) 
  SetTitle("未命名.txt");  //设置文档标题
  return TRUE; 
}

(2)设置程序标题:

在框架类(CMainFrame)的PreCreateWindow()函数中加入语句:m_strTitle = _T("程序标题");
如:MainFrm.cpp:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 
{ 
  if( !CFrameWnd::PreCreateWindow(cs) ) 
    return FALSE; 
  // TODO: Modify the Window class or styles here by modifying 
  // the CREATESTRUCT cs 
  m_strTitle = _T("文本整理器");  //设置程序标题
  return TRUE; 
}

以上两点比较适用于视图-文档结构的程序,在新建文档时,系统会自动运行OnNewDocument()函数,在其中可以设置合适的标题。对于未采用文档的程序可以用下面的方法修改标题:

(3)修改窗口标题:

修改窗口标题一般在打开文件函数OnFileOpen()和另存为函数OnFileSaveAs()中进行,可以使用下面的函数:

AfxGetMainWnd()->SetWindowText("文档标题"+" - "+"程序标题");

其中文档标题和程序标题可使用定义过的串变量。

相关文章

  • 判断本机office安装版本的方法分享

    判断本机office安装版本的方法分享

    这篇文章主要介绍了判断本机office安装版本的方法分享,需要的朋友可以参考下
    2014-01-01
  • Windows下搭建FFmpeg开发调试环境的详细步骤

    Windows下搭建FFmpeg开发调试环境的详细步骤

    这篇文章主要介绍了Windows下搭建FFmpeg开发调试环境,本文以VS2017为例一步步介绍怎么搭建一个可供单步调试的FFmpeg项目,需要的朋友可以参考下
    2022-07-07
  • C语言常用占位符的使用小结

    C语言常用占位符的使用小结

    占位符是一种用于格式化输出的特殊字符,通常用于 printf() 等输出函数中,本文主要介绍了C语言常用占位符的使用小结,非常具有实用价值,需要的朋友可以参考下
    2023-05-05
  • 尾递归详细总结分析

    尾递归详细总结分析

    关于递归操作,相信大家都已经不陌生。简单地说,一个函数直接或间接地调用自身,是为直接或间接递归
    2013-09-09
  • 内核线程优先级设置的方法介绍

    内核线程优先级设置的方法介绍

    本篇文章介绍了,内核线程优先级设置的方法。需要的朋友参考下
    2013-05-05
  • c++ 深入理解归并排序的用法

    c++ 深入理解归并排序的用法

    归并排序是典型分治思想的代表——首先把原问题分解为两个或多个子问题,然后求解子问题的解,最后使用子问题的解来构造出原问题的解
    2022-03-03
  • C++回调函数的理解和使用教程

    C++回调函数的理解和使用教程

    这篇文章主要给大家介绍了关于C++回调函数的理解和使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • SQL Server中的数据复制到的Access中的函数

    SQL Server中的数据复制到的Access中的函数

    SQL Server中的数据复制到的Access中,表的结构相同 不要提用openrowset,因为Access文件和SQL Server不在一台机器上
    2008-11-11
  • Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    这篇文章主要介绍了Java C++ 算法题解leetcode145商品折扣后最终价格单调栈示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • C语言sizeof和strlen区别小结

    C语言sizeof和strlen区别小结

    C语言中的sizeof和strlen是两个常用的操作符/函数,但它们的功能和用途有很大的区别,本文就详细的来介绍一下C语言sizeof和strlen区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01

最新评论