admin 管理员组文章数量: 1086019
2024年4月30日发(作者:unix文件系统结构)
第一步粘贴代码
CBitmap m_BKGround;
CString m_Caption;
BOOL m_IsMax;
CButtonState m_ButtonState; //按钮状态
int m_BorderWidth; //边框宽度
int m_BorderHeight; //边框高度
int m_FrameWidth ; //窗体D宽度
int m_FrameHeight; //窗体D高度
int m_CaptionHeight; //标题栏的高度
int m_TitleDrawHeight; //标题栏实际的绘制高度
int m_ButtonWidth; //按钮位图宽度
int m_ButtonHeight; //按钮位图高度
COLORREF m_CapitonColor; //标题字体颜色
CFont m_CaptionFont; //标题字体
BOOL m_IsDrawForm ;
CRect m_LTitleRc, m_MTitleRc,m_RTitleRc; //左,中,右标题显示区域
CRect m_MinRect,m_MaxRect,m_CloseRect; //标题栏按钮的显示区域
第二步粘贴代码
// CCaptureDlg dialog
#define FLEFTBAR 1 //左边框
#define FLEFTTITLE 2 //左标题
#define FRIGHTTITLE 4 //右标题
#define FMIDTITLE 8 //中间标题
#define FRIGHTBAR 16 //右边框
#define FBOTTOMBAR 32 //底边框
#define FMINBUTTON 64 //最小化按钮
#define FMAXBUTTON 128 //最大化按钮
#define FCLOSEBUTTON 256 //关闭按钮
#define FALL 511 //所有标识
#define MAXNUM 100
//按钮状态
Onlintdialog
//加载背景位图
m_tmap(IDB_BKGROUND);
m_BorderHeight = GetSystemMetrics(SM_CYBORDER);
m_BorderWidth = GetSystemMetrics(SM_CXBORDER);
m_CaptionHeight = GetSystemMetrics(SM_CYCAPTION);
SetWindowText(m_Caption);
m_Font(14,10,0,3,600,0,0,0,ANSI_CHARSET,OUT_DEFAUL
T_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_ROMAN,"宋体");
CBitmap bitmap;
tmap(IDB_MINBT);
BITMAPINFO bInfo;
ect(sizeof(bInfo),&bInfo);
m_ButtonWidth = h;
m_ButtonHeight = ht;
Object();
CcaptureDialog右键添加成员函数void DrawDialog(UINT Flags) public
//获得边框信息
m_FrameHeight = GetSystemMetrics(SM_CYFIXEDFRAME);
m_BorderHeight = GetSystemMetrics(SM_CYBORDER);
m_FrameWidth = GetSystemMetrics(SM_CXFIXEDFRAME);
m_BorderWidth = GetSystemMetrics(SM_CXBORDER);
m_CaptionHeight = GetSystemMetrics(SM_CYCAPTION);
CRect Clientrect;
GetClientRect(Clientrect);
CRect WinRC,FactRC;
GetWindowRect(WinRC);
ct(CRect(0,0,(),()));
//获取窗口设备上下文
CWindowDC WindowDC(this);
CBitmap LeftLine,*OldObj;
BITMAPINFO bitinfo;
CDC memDC;
CompatibleDC(&WindowDC);
int leftwidth = 0; //左标题的宽度
int rightwidth = 0; //右标题的宽度
int leftlinewidth = 0; //窗体边框和3D宽度
int rLineWidth;
int bLineHeight;
DeleteObject(LeftLine);
tmap(IDB_RIGHTTITLE); //加载右标题
ect(sizeof(bitinfo),&bitinfo);
rightwidth = h;
();
int x,y;
//绘制左边线
//获取位图大小
if(Flags & FLEFTBAR)
{
DeleteObject(LeftLine);
tmap(IDB_LEFTBAR);
ect(sizeof(bitinfo),&bitinfo);
ect(sizeof(bitinfo),&bitinfo);
x = h;
y = ht;
OldObj = Object(&LeftLine);
//判断位图的宽度与窗体边缘的宽度
leftlinewidth = (x> m_FrameWidth+m_BorderWidth)?
x:m_FrameWidth+m_BorderWidth;
hBlt(0,m_CaptionHeight,leftlinewidth,
()-m_CaptionHeight,&memDC,0,0,x,y,SRCCOPY);
Object(OldObj);
();
}
//绘制左标题
if(Flags & FLEFTTITLE)
{
DeleteObject(LeftLine);
tmap(IDB_LEFTTITLE);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
leftwidth = x = h;
y = ht;
m_TitleDrawHeight = (m_CaptionHeight+4 > y) ? m_CaptionHeight+4 : y;
m_ct(CRect(0,0,x,m_TitleDrawHeight));
hBlt(m_,m_,m_(),
m_(),&memDC,0,0,x,y,SRCCOPY);
Object(OldObj);
();
}
//绘制右标题
if(Flags & FRIGHTTITLE)
{
DeleteObject(LeftLine);
tmap(IDB_RIGHTTITLE);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
x = h;
y = ht;
m_TitleDrawHeight = (m_CaptionHeight+4 > y) ? m_CaptionHeight+4 : y;
m_ct(CRect(-x,0,,m_TitleDrawHeight));
hBlt(m_,m_,m_(),
m_(),&memDC,0,0,x,y,SRCCOPY);
DeleteObject( Object(OldObj));
();
}
//绘制中间标题
if(Flags & FMIDTITLE)
{
DeleteObject(LeftLine);
tmap(IDB_MIDTITLE);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
x = h;
y = ht;
m_TitleDrawHeight = (m_CaptionHeight+4 > y) ? m_CaptionHeight+4 : y;
m_ct(CRect(m_,0,m_,m_TitleDrawHei
ght));
hBlt(m_,m_,m_(),
m_(),&memDC,0,0,x,y,SRCCOPY);
();
Object(OldObj);
}
//绘制右边框
if(Flags & FRIGHTBAR)
{
DeleteObject(LeftLine);
tmap(IDB_RIGHTBAR);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
x = h;
y = ht;
rLineWidth = m_FrameWidth + m_BorderWidth;
rLineWidth = rLineWidth>x? rLineWidth:x;
hBlt(m_-rLineWidth,m_TitleDrawHeight,rLineWi
dth,
()-m_TitleDrawHeight,&memDC,0,0,x,y,SRCCOPY);
Object(OldObj);
();
}
//绘制底边框
if(Flags & FBOTTOMBAR)
{
DeleteObject(LeftLine);
tmap(IDB_BOTTOMBAR);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
x = h;
y = ht;
bLineHeight = m_BorderHeight + m_FrameHeight;
bLineHeight = bLineHeight>y? bLineHeight:y;
hBlt(leftlinewidth,()-bLineHeight,m_
ght
-rLineWidth-leftlinewidth, bLineHeight,&memDC,0,0,x,y,SRCCOPY);
Object(OldObj);
();
}
//绘制底边框
CPoint pos(30,1);
m_ct(CRect(m_+pos.x,(m_TitleDrawHeight+2*
m_BorderHeight
-m_ButtonHeight)/2+pos.y,m_ButtonWidth,m_ButtonHeight));
pos.x = 55;
m_ct(CRect(m_+pos.x,(m_TitleDrawHeight+2*
m_BorderHeight
-m_ButtonHeight)/2+pos.y,m_ButtonWidth,m_ButtonHeight));
pos.x = 80;
m_ct(CRect(m_+pos.x,(m_TitleDrawHeight+2*
m_BorderHeight
-m_ButtonHeight)/2+pos.y,m_ButtonWidth,m_ButtonHeight));
//绘制最小化按钮
if(Flags & FMINBUTTON)
{
DeleteObject(LeftLine);
tmap(IDB_MINBT);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
x = h;
y = ht;
hBlt(m_,m_,m_,
m_,&memDC,0,0,x,y,SRCCOPY);
Object(OldObj);
();
}
//绘制最大化按钮
if ( Flags & FMAXBUTTON)
{
DeleteObject(LeftLine);
tmap(IDB_MAXBT);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
x = h;
y = ht;
hBlt(m_,m_,m_,
m_,&memDC,0,0,x,y,SRCCOPY);
Object(OldObj);
();
}
//绘制关闭按钮
if(Flags & FCLOSEBUTTON)
{
DeleteObject(LeftLine);
tmap(IDB_CLOSEBT);
//获取位图大小
ect(sizeof(bitinfo),&bitinfo);
OldObj = Object(&LeftLine);
x = h;
y = ht;
hBlt(m_,m_,m_,
m_,&memDC,0,0,x,y,SRCCOPY);
Object(OldObj);
();
}
Object();
DC();
DrawCaption();
右键添加函数void DrawCapture public
if(!m_y())
{
CDC* pDC = GetWindowDC();
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(m_CapitonColor);
pDC->SetTextAlign(TA_CENTER);
CRect rect;
GetClientRect(rect);
pDC->SelectObject(&m_CaptionFont);
pDC->TextOut(()/2, m_CaptionHeight/3 ,m_Caption);
ReleaseDC(pDC);
}
Onpaint函数下
DrawDialog(FALL);
m_IsDrawForm = TRUE;
CCaptureDlg::CCaptureDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCaptureDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCaptureDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
m_CapitonColor = RGB(0,0,255);
m_Caption = "社区视频监控系统";
m_IsMax = TRUE;
版权声明:本文标题:社区视频监控系统源代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714463401a681259.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论