• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
King.c.Tan's Column

-------I'm a bat,a bat with my sense

flying in the dark!

博客园    首页    新随笔    联系   管理    订阅  订阅
VC++学习笔记(1)

自建工具栏时,要想在菜单栏中控制其显示或隐藏,可有两种方法,如下的代码:
(1)
void CMainFrame::OnViewNewTool()
{
    if(m_newToolBar.isWindowVisible())
    {
 m_newToolBar.ShowWindow(SW_HIDE);
    }
    else
    {
 m_newToolBar.ShowWindow(SW_SHOW);
    }
  RecalLayout();
  DockControlBar(&m_newToolBar);
}

(2)
ShowControlBar(&m_newToolBar,!m_newToolBar.isWindowVisible(),FALSE);

给菜单项加上复选标记的方法:
1。在菜单项上点右键,加一个消息响应函数:UPDATE_COMMAND_UI
添加代码如下:
void CMainFrame::OnUpdateViewNewtool(CCmdUI *pCmdUI)
{ 
 pCmdUI->SetCheck(m_newToolBar.isWindowVisible());
}

3.对状态栏编程。
首先在String Table 中添加字符串ID,然后在CMainFrame中找到indicators[]数组,在其中加入刚才添加的字符串的
ID。
4。对时间编程。
CTime t=CTime::GetCurrentTime();
CString str=t.Format("%H:%M:%S");

设置状态栏中右边指示器中面板的内容:SetPaneText().
获得指示器中某个ID的index,可用CommnandToIndex().
改变指示器中某个面板的宽度:SetPaneInfo(int index,UINT nID,UINT nStyle,int cxWidth);
获得一个字符串的长度:
CClientDC dc(this);
CSize sz=dc.GetTextExtent(str);

5.进度栏的编程。
CProgressCtrl::CProgressCtrl()
(1)构造一个CProgressCtrl对象。
CProgressCtrl m_cprc
(2)在onCreate中去创建一个进度栏。
m_cprc.Create(WS_CHILD|WS_VISIBLE)
让进度动起来:
SetStep().
SetRange().设置范围。

6.自定义消的方法:
(1)。在头文件中定义一个消息ID。为防止和系统消息发生冲突,用下面的方法。
如:#define UM_PROGRESS WM_USER+1
(2)。作消息响应函数原型的声明:
afx msg void OnPress();
(3).作消息映射:
ON_MESSAGE(UM_PROGRESS,OnProgress)
(4).消息响应函数的实现。
CMainFrame::OnProgress()
{

}

可以在某个函数中发送这样一个消息:SendMessage(UM_PROGRESS);
或PostMessage(UM_PROGRESS);
** 移动窗口到指定的位置:SetWindowPos() (功能多些,可以设顶层窗口)和MoveWindow()(方便些)

CFrameWnd::SetMessageText()的用法。
CFrameWnd::GetMessageBar()的用法。
CWnd::GetDescendantWindow()的用法。

posted on 2005-08-14 09:51  BoyeeStudio  阅读(558)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3