DrawFrameControl绘制按钮

CDC类中的DrawFrameControl函数,提供了在DC中绘制按钮的方法,而不必采用动态创建按钮的形式。函数原型如下:

  1. BOOL DrawFrameControl(   
  2. LPRECT lpRect,   
  3. UINT nType,   
  4. UINT nState );   

参数说明:

lpRect :矩形

nType :控件类型

nState :控件状态

对于控件的类型和状体,引用MSDN::前是nType,下面是状态uState

  1. DFC_BUTTON   
  2.   DFCS_BUTTON3STATE   Three-state button   
  3.   DFCS_BUTTONCHECK   Check box   
  4.   DFCS_BUTTONPUSH   Push button   
  5.   DFCS_BUTTONRADIO   Radio button   
  6.   DFCS_BUTTONRADIOIMAGE   Image for radio button; nonsquare needs image   
  7.   DFCS_BUTTONRADIOMASK   Mask for radio button; nonsquare needs mask   
  8. DFC_CAPTION   
  9.   DFCS_CAPTIONCLOSE   Close button   
  10.   DFCS_CAPTIONHELP   Help button   
  11.   DFCS_CAPTIONMAX   Maximize button   
  12.   DFCS_CAPTIONMIN   Minimize button   
  13.   DFCS_CAPTIONRESTORE   Restore button   
  14. DFC_MENU   
  15.   DFCS_MENUARROW   Submenu arrow   
  16.   DFCS_MENUBULLET   Bullet   
  17.   DFCS_MENUCHECK   Check mark   
  18. DFC_SCROLL   
  19.   DFCS_SCROLLCOMBOBOX   Combo box scroll bar   
  20.   DFCS_SCROLLDOWN   Down arrow of scroll bar   
  21.   DFCS_SCROLLLEFT   Left arrow of scroll bar   
  22.   DFCS_SCROLLRIGHT   Right arrow of scroll bar   
  23.   DFCS_SCROLLSIZEGRIP   Size grip in the lower right corner of window   
  24.   DFCS_SCROLLUP   Up arrow of scroll bar   
 

 下面给出一个绘制普通按钮的例子:

  1. void CXXControl::Draw_MyButton(CDC *pDC)  
  2. {  
  3.     COLORREF lineColor = RGB(0, 255, 0);  
  4.     CRect rect(10, 10, 100, 20);//定义矩形大小  
  5.     pDC->DrawFrameControl(rect,DFC_BUTTON,DFCS_BUTTONPUSH);  
  6.     rect.OffsetRect(20,0);  
  7.     pDC->SetTextColor(lineColor);    //字体颜色可更改  
  8.     pDC->SetBkMode(TRANSPARENT);  
  9.     pDC->DrawText(“可以作为参数动态输入”,rect,DT_LEFT|DT_VCENTER|DT_SINGLELINE);  
  10. }  

用此方法绘制出来的Button,与绘制的直线,椭圆等图形有异曲同工之效。便于在视图中使用,比如你可以在支持“层”概念的绘图软件使用此方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值