WEB开发网
开发学院软件开发VC Visual C++ MFC 简明教程(4) 阅读

Visual C++ MFC 简明教程(4)

 2007-03-18 21:27:52 来源:WEB开发网   
核心提示: 当程序运行时,它每隔1毫秒鸣笛一声,Visual C++ MFC 简明教程(4)(8),每次时钟的时间增量流逝,窗口都会发送消息给自己,在后面的代码中你看到如何用Create函数的SBS_HORZ样式来建立一水平滚动条,在建立了滚动条之后,消息映射选择消息给OnTimer函数,它鸣笛

当程序运行时,它每隔1毫秒鸣笛一声。每次时钟的时间增量流逝,窗口都会发送消息给自己。消息映射选择消息给OnTimer函数,它鸣笛。你可以在此放置更有用的代码。

滚动条控制

Windows用两种不同的方式来处理滚动条。一些控制,如编辑控制和列表控制,可以带有滚动条。在这种情况下,滚动条会被自动处理,不不要额外的代码来处理。

滚动条也可以作为单独的元件来使用。当这样使用时,滚动条就拥有独立的权力。你可以参见MFC参考手册中有关CScrollBar的有关章节。滚动条控制的建立与前面介绍的静态标签和按钮的一样。它有四个成员函数允许你设置和获取滚动条的位置和范围。

下面的代码演示了建立水平滚动条的过程和其消息映射:

  // sb1.cpp
   #include
   #define IDM_SCROLLBAR 100
   const int MAX_RANGE=100;
   const int MIN_RANGE=0;
   // Declare the application class
   class CScrollBarApp : public CWinApp
   {
   public:
   virtual BOOL InitInstance();
   };
   // Create an instance of the application class
   CScrollBarApp ScrollBarApp;
   // Declare the main window class
   class CScrollBarWindow : public CFrameWnd
   {
   CScrollBar *sb;
   public:
   CScrollBarWindow();
   afx_msg void OnHScroll(UINT nSBCode, UINT nPos,
   CScrollBar* pScrollBar);
   DECLARE_MESSAGE_MAP()
   };
   // The message handler function
   void CScrollBarWindow::OnHScroll(UINT nSBCode,
   UINT nPos, CScrollBar* pScrollBar)
   {
   MessageBeep(-1);
   }
   // The message map
   BEGIN_MESSAGE_MAP(CScrollBarWindow, CFrameWnd)
   ON_WM_HSCROLL()
   END_MESSAGE_MAP()
   // The InitInstance function is called once
   // when the application first executes
   BOOL CScrollBarApp::InitInstance()
   {
   m_pMainWnd = new CScrollBarWindow();
   m_pMainWnd->ShowWindow(m_nCmdShow);
   m_pMainWnd->UpdateWindow();
   return TRUE;
   }
   // The constructor for the window class
   CScrollBarWindow::CScrollBarWindow()
   {
   CRect r;
   // Create the window itself
   Create(NULL,
  "CScrollBar Tests",
   WS_OVERLAPPEDWINDOW,
   CRect(0,0,200,200));
   // Get the size of the client rectangle
   GetClientRect(&r);
   // Create a scroll bar
   sb = new CScrollBar();
   sb->Create(WS_CHILD|WS_VISIBLE|SBS_HORZ,
   CRect(10,10,r.Width()-10,30),
   this,
   IDM_SCROLLBAR);
   sb->SetScrollRange(MIN_RANGE,MAX_RANGE,TRUE);
   }

Windows会区分水平和垂直滚动条,同时还支持CScrollBar中一称为尺寸盒的控制。尺寸盒是一个小方块。它处于水平和垂直滚动条的交叉处,呀鼠标拖动它会自动改变窗口的大小。在后面的代码中你看到如何用Create函数的SBS_HORZ样式来建立一水平滚动条。在建立了滚动条之后,马上用SetScrollRange中的MIN_RANGE和MAX_RANGE龙个常数给出了滚动条的范围0~100(它们定义在程序的顶部)。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Visual MFC 简明教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接