我的vc++问题集1

 1.如何创建提示窗口
 1、子类化EDIT控件
 class CMyEdit: Public CEdit

 2、在此子类中定义一个
 CToolTipCtrl m_tooltip;

 3、重载函数
 void CMyEdit::OnCreate();
 void CMyEdit::OnMouseMove(UINT nFlags, CPoint point);
 BOOL CMyEdit::PreTranslateMessage(MSG* pMsg);

 4、OnCreate中添加初始化代码
 int nFontSize = 40;
 int nFontBold = 800;
 m_tooltip.Create(this,TTS_ALWAYSTIP);

 //m_tooltip.SetFont(&fontText);
 //将CToolTipCtrl与相应的控件对应起来
 m_tooltip.AddTool(this,TTS_ALWAYSTIP);
 //设定文字的颜色
 m_tooltip.SetTipTextColor(RGB(0,150,20));
 //设定提示文字在控件上停留的时间
 m_tooltip.SetDelayTime(150);

 5、PreTranslateMessage函数中添加代码:
 if(m_tooltip.m_hWnd!=NULL) 
 m_tooltip.RelayEvent(pMsg);

 6、OnMouseMove(UINT nFlags, CPoint point)函数中添加代码:
 CString strtip;//你想要显示的内容
 m_tooltip.UpdateTipText(strtip,this);
2.增加属性页的方法有:
 (1) 用CTabCtrl类中的InsertItem方法。
 (2)
 CPropertySheet sheet("属性页对话框");
 CPage1 page1;//CPage1为CPropertyPage派生出来的类
 CPage2 page2;//CPage2为CPropertyPage派生出来的类
 sheet.AddPage(&page1);
 sheet.AddPage(&page2);
 sheet.DoModal();
3.设置标题:(这只能在CDocument中)
 调用this->SetTitle("标题");函数就行。

4.设置对话框的图标:
 调用this->SetIcon(AfxGetApp()->LoadIcon(图标ID),TRUE);

5.在对话框中如何增加状态栏:
 在类中定义一个CStatusBar m_StatusBar 变量
 在初始化函数中调用m_StatusBar.Create(this)创建状态栏
 添加状态栏面板
  UINT  Indicates[6];
  for (int i = 0; i<6;i++)
  {
   Indicates[i] = 50+i;
  }

  m_StatusBar.SetIndicators(Indicates,6);

  CRect rect;
  GetClientRect(rect);
  
  UINT PaneWidth = rect.Width()/6;
 设置面板宽度
  for(int n = 0;n<6;n++)
  {
   m_StatusBar.SetPaneInfo(n,50+n*10,SBPS_NORMAL,PaneWidth);
  }
 设置状态栏面板文本
  m_StatusBar.SetPaneText(0,"用户名称");
  m_StatusBar.SetPaneText(1,"明日科技");
  m_StatusBar.SetPaneText(2,"状态");
  m_StatusBar.SetPaneText(4,"日期");
 重新定位
  RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

6.如何把一个BMP图片设置为背景:
 CDC* pDC = GetDC();//用于指向当前设备
 CDC mDC;
 CBitmap bitmap;//用于存储bmp图片
 bitmap.LoadBitmap(IDB_BITMAP1);//下载BMP图片
 BITMAPINFO bInfo;//定义位图信息
 bitmap.GetObject(sizeof(bInfo),&bInfo);获取位图信息

 mDC.CreateCompatibleDC(pDC);//创建一个与指定设备兼容的内存设备上下文环境(DC).
 mDC.SelectObject(&bitmap);//把位图加载到设备上下文中
 pDC->StretchBlt(0,0,rect.Width(),rect.Height(),
 &mDC,0,0,bInfo.bmiHeader.biWidth,
 bInfo.bmiHeader.biHeight,SRCCOPY);//从源矩形中复制一个位图到目标矩形。
 
 如下代码也能实现同样的功能:
  CPaintDC dc(this);
  CRect rect;
  GetWindowRect(&rect);
  CDC memDC;
  CBitmap cBitmap;
  CBitmap* pOldMemBmp=NULL;
  cBitmap.LoadBitmap(IDB_BITMAP1);
  memDC.CreateCompatibleDC(&dc);
  pOldMemBmp=memDC.SelectObject(&cBitmap);
  dc.BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY);
  if(pOldMemBmp)memDC.SelectObject(pOldMemBmp);

7.CAnimateCtrl控件可以播放无声的avi动画

8.如何设置状态栏的最低高度:
 调用:m_StatusBar.GetStatusBarCtrl().SetMinHeight(50)函数即可。

9.滚动字幕的实现
 在状态栏中实现滚动字幕,可以利用静态文本控件实现。在状态栏中显示一个静态文本控件,
 然后每隔一段时间调整静态文本控件的位置,即可实现滚动字幕的效果。
 相关的调用函数有:MoveWindow();

10.关于OnCmdMsg函数
 这函数是由框架调用的。如果一个类继承CListCtrl类,其中也可以相应OnCmdMsg函数.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值