DrawFrameControl绘制按钮

来源:互联网 发布:matlab char数组 编辑:程序博客网 时间:2024/05/22 13:06

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

BOOL DrawFrameControl( LPRECT lpRect, UINT nType, UINT nState ); 

参数说明:

lpRect :矩形

nType :控件类型

nState :控件状态

对于控件的类型和状体,引用MSDN:

DFC_BUTTON   DFCS_BUTTON3STATE   Three-state button   DFCS_BUTTONCHECK   Check box   DFCS_BUTTONPUSH   Push button   DFCS_BUTTONRADIO   Radio button   DFCS_BUTTONRADIOIMAGE   Image for radio button; nonsquare needs image   DFCS_BUTTONRADIOMASK   Mask for radio button; nonsquare needs mask DFC_CAPTION   DFCS_CAPTIONCLOSE   Close button   DFCS_CAPTIONHELP   Help button   DFCS_CAPTIONMAX   Maximize button   DFCS_CAPTIONMIN   Minimize button   DFCS_CAPTIONRESTORE   Restore button DFC_MENU   DFCS_MENUARROW   Submenu arrow   DFCS_MENUBULLET   Bullet   DFCS_MENUCHECK   Check mark DFC_SCROLL   DFCS_SCROLLCOMBOBOX   Combo box scroll bar   DFCS_SCROLLDOWN   Down arrow of scroll bar   DFCS_SCROLLLEFT   Left arrow of scroll bar   DFCS_SCROLLRIGHT   Right arrow of scroll bar   DFCS_SCROLLSIZEGRIP   Size grip in the lower right corner of window   DFCS_SCROLLUP   Up arrow of scroll bar 

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

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

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

 

原创粉丝点击