C++学习笔记二

 
Chapter22 滚动字幕程序
1.       OnDraw函数中写画得内容.使用Invalidate() 或者 InvalidateRect()刷新 触发OnDraw()得调用.
2.       Windows不允许直接 访问显示硬件 .我们必须通过和窗口 关联得 “设备环境”跟显示硬件 通讯 .设备环境由C++得CDC类 对象表示得.该对象以 指针形式作为参数传给OnDraw() .
 
Chapter22 滚动轴响应键盘
1.Windows 为每一键发送3条消息.第一条是 WM_KEYDOWN,接着发送得是WM_
CHAR消息.以及 被按下 得字符得简码,第三是 WM_KEYUP..
 
表非打印的虚拟键码
 
虚拟键码
控制键
VK-MENU
Menu(菜单,只在Window95,98键盘上有)
VK-APPS
Applicate(应用程序,只有在Window95/98键盘上有)
VK-CONTROL
Control(控制)
VK-DELETE
Delete
VK-DOWN
下箭头
VK-END
End
VK-F1到VK-F12
F1到F12
VK-HOME
Home
VK-INSERT
Insert
VK-LEFT
左箭头
VK-PAUSE
Pause
VK-NEXT
PageDown
VK-PRIOR
PageUp
VK-SNAPSHOT
PrintScreen
VK-RIGHT
右箭头
VK-SHIFT
SHift
VK-UP
上箭头
2.0核心代码
void CCKEYSCROLLView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
       // TODO: Add your message handler code here and/or call default
      
       switch(nChar)
       {
       case VK_HOME:
              OnVScroll(SB_TOP,0,NULL);
              OnHScroll(SB_LEFT,0,NULL);
              break;
       case VK_END:
              OnVScroll(SB_BOTTOM,0,NULL);
              OnHScroll(SB_RIGHT,0,NULL);
              break;
       case VK_UP:
              OnVScroll(SB_LINEUP,0,NULL);
              break;
       case VK_DOWN:
              OnVScroll(SB_LINEDOWN,0,NULL);
              break;
       case VK_LEFT:
              OnHScroll(SB_LINELEFT,0,NULL);
              break;
       case VK_RIGHT:
              OnHScroll(SB_LINERIGHT,0,NULL);
              break;
       }
       CScrollView::OnKeyDown(nChar, nRepCnt, nFlags);
}
 
chapter23 bitmap
1.       在制作位图显示之前先转移到内存中.在windwos api中,所分配的内存句柄为HBITMAP ,它用来获得位图在内存中的地址以及长度的数据,当驻留内存中的数据转移到视频内存中时位图显示在屏幕上.
2.       Cbitmap Bitmap //创建位图对象.
3.       上面步骤2只是创建一空的位图.使用时需要 LoadBitmap();
4.       Bitmap.LoadBitmap(IDR_BITMAP);
5.       Bit
6.       BltBlt(int x,int y,int width,int height,CDC* pScrDC,int xSRc,int ySrc,DWORD dwRop);
 
dwRop为位图的显示格式.
7.       主要代码
 
void CBitMap22View::OnDraw(CDC* pDC)
{
       CBitMap22Doc* pDoc = GetDocument();
       ASSERT_VALID(pDoc);
       CBitmap map;
       map.LoadBitmap(IDB_BITMAP1);
       CDC MemDC;
       MemDC.CreateCompatibleDC(pDC);
       CBitmap *pOldBitmap=MemDC.SelectObject(&map);
       BITMAP bm;
       map.GetObject(sizeof(BITMAP),&bm); //获得位图信息
       pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY);
       MemDC.SelectObject(pOldBitmap);
       // TODO: add draw code for native data here
}
 
 
Chapter 24 Split Window
1.       主要类 CSplitterWnd
2.       BOOL CreateStatic(CWnd* pParentWnd,int nRows,int nColw,DWORD dwStyle=WS_CHILD|WS_VISIBLE,UINT nID=AFX_IDW_PANE_FIRST);
3.       BOOL Create();
4.       主要代码
CRect r;
GetClientRect(&r);
CSize paneSize(r.Width()/3,r.Height()/3);
m_wndSplitter.CreateStatic(this,3,1);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(myView),paneSize,pContext);
m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(myView),paneSize,pContext);
        m_wndSplitter.CreateView(2,0,RUNTIME_CLASS(myView),paneSize,pContext);
return true;
 
Chapter25,26 画笔
1.       主要code
CClientDC dc(this);
dc.MoveTo(x,y);
dc.lineTo(CPoint end);
2.       画笔CPen类是画图程序中常用的类.画笔用于指定画线的特正.CDC中各种画线的函数如LineTo(),ARc(). PolyLine()等均使用画笔对象.
3.       CPen() CPen(int nPenStyle,int nWidth,COLORREF crColor); and so on.
4.       Style种类 PS_SOLID,PS_DASH,PS_DOT, and so on/
5.使用CPen主要代码
pen.DeleteObject();
pen.CreatePen(PS_SOLID,1,m_Color);
使用时候
CClientDC dc(this);
dc.SelectObject(&pen);
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值