正在阅读:VC实用小知识总结 (二)VC实用小知识总结 (二)

2005-01-07 15:55 出处: 作者:SEUU 责任编辑:linjixiong

  (29) 如何在代码中获取工具条和状态条的指针
  缺省时, 工作框创建状态条和工具条时将它们作为主框窗口的子窗口,状态条有一个AFX_IDW_STATUS_BAR标识符,工具条有一个AFX_IDW_TOOLBAR标识符,下例说明了如何通过一起调用CWnd: : GetDescendantWindow和AfxGetMainWnd来获取这些子窗口的指针:


  //Get pointer to status bar .
  CStatusBar * pStatusBar = (CStatusBar *) AfxGetMainWnd ( )
  —> GetDescendantWindow(AFX_IDW_STUTUS_BAR)

  //Get pointer to toolbar .
  CToolBar * pToolBar = (CToolBar * ) AfxGetMainWnd ( )
  —> GetDescendantWindow(AFX_IDW_TOOLBAR)

  (30) 怎样加载其他的应用程序?
  三个SDK函数 winexec, shellexecute,createprocess可以使用。
  WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED方式去加载一个无最大化按钮的程序,就是Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。

  ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的Example就是直接打开 c:\temp\1.txt,而不用加载与 txt文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme or Faq,我猜就是这么作的啦.


  ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED)

  CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的Example:


  STARTUPINFO stinfo
  //启动窗口的信息
  PROCESSINFO procinfo //进程的信息

  CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,
  NORMAL_PRIORITY_

  CLASS,NULL,NULL, &stinfo,&procinfo)

  (31) 如何在代码中获取工具条和状态条的指针
  缺省时, 工作框创建状态条和工具条时将它们作为主框窗口的子窗口,状态条有一个AFX_IDW_STATUS_BAR标识符,工具条有一个AFX_IDW_TOOLBAR标识符,下例说明了如何通过一起调用CWnd: : GetDescendantWindow和AfxGetMainWnd来获取这些子窗口的指针:


  //Get pointer to status bar .
  CStatusBar * pStatusBar = (CStatusBar *) AfxGetMainWnd ( )
  —> GetDescendantWindow(AFX_IDW_STUTUS_BAR)

  (32) 如何使能和禁止工具条的工具提示
  如果设置了CBRS_TOOLTIPS风格位,工具条将显示工具提示,要使能或者禁止工具提示,需要设置或者清除该风格位。下例通过调用CControlBar : : GetBarStyle和CControlBar : : SetBarStyle建立一个完成此功能的成员函数:


  void CMainFrame : : EnableToolTips ( BOOL bDisplayTips )
  {
  ASSERT_VALID (m_wndToolBar)

  DWORD dwStyle = m _wndToolBar.GetBarStyle ( )

  if (bDisplayTips) dwStyle |=CBRS_TOOLTIPS

  else
  dwStyle & = ~CBRS_TOOLTIPS

  m_wndToolBar.SetBarStyle (dwStyle )
  }

  //Get pointer to toolbar .
  CToolBar * pToolBar = (CToolBar * ) AfxGetMainWnd ( )
  —> GetDescendantWindow(AFX_IDW_TOOLBAR)

  (33) 如何设置工具条标题
  工具条是一个窗口,所以可以在调用CWnd : : SetWindowText来设置标题,例子如下:


  int CMainFrame : : OnCreate (LPCREATESTRUCT lpCreateStruct )
  {
  …
  // Set the caption of the toolbar .
  m_wndToolBar.SetWindowText (_T "Standdard")

热点推荐: 
教你如何成为一名Java初级程序员变态级JAVA程序员面试32问(附答案)
将Asp.Net页面输出到EXCEL里去读书笔记:程序员的个人性格
Java编程学习:自己DIY一个JSP日历Java 的破解和反破解之道
网页编程必看:XML文法分析设计模式的有趣解释-追MM


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品